移植Java代码到C++的技巧(整合)
作者:网络转载 发布时间:[ 2013/4/17 9:53:25 ] 推荐标签:
二、字符串对象(string vs String):
在Java的代码中,我们经常会看到这样一种写法,相信几乎每一个Java程序员都有过这样的代码,因此他看上去非常熟悉,甚至还带有一点儿亲切感。
1 public String getName() {
2 return name;
3 }
这样的代码在Java中确实司空见惯,也无可厚非,因此对于我们来说没有太多可以讨论的空间,除非你非常希望了解JVM中对象常量池的概念,然而它并不是我们这个条目中将要讨论的主题。
那么现在让我们来看一下在C++中又是如何处理此类问题的,下面将列举出三种常用的实现方式。
方法一: 直接返回内部name成员的指针。
1 const char* getName() {
2 return _name; //_name变量的类型为char*
3 }
方法二:基于成员变量name的数据,重新分配相同长度的内存空间,之后再将name中的数据copy过来,后返回函数中新分配的地址。
char* getName() {
size_t length = strlen(_name);
char* result = malloc(length + 1);
assert(result);
memcpy(result,_name,length);
result[length] = '
