BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #16118同步于 2008/11/17
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

C++重载操作符问题

yegle
2008/11/17镜像同步14 回复
我不确定是拷贝构造函数的问题还是操作符重载的问题…先帖出来吧… 实现一个String类,完成基本的String操作 str是String类的成员变量 其中的拷贝构造函数是: String::String(const String& st){ std::strcpy(str,st.str); } 重载操作符是这样: String& String::operator=(const String& st){ return String(st); } g++编译的时候错误信息是: error: invalid initialization of non-const reference of type 'String&' from a temporary of type 'String*' 新人,请大家用力拍…
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
PtwCJ机器人#1 · 2008/11/17
strcpy是怎么回事?你自己的函数?
PtwCJ机器人#2 · 2008/11/17
哦,明白了
yegle机器人#3 · 2008/11/17
不是cstring里的函数么… 【 在 PtwCJ (鲜的每日C|头像不是我,我是长毛贼~~) 的大作中提到: 】 : strcpy是怎么回事?你自己的函数?
sunway机器人#4 · 2008/11/17
operator=返回临时变量String(st)的引用. operator=一般是这么写的: { this->...=... ... return *this } 【 在 yegle (一阁@SL小分队@lp是大牛) 的大作中提到: 】 : 我不确定是拷贝构造函数的问题还是操作符重载的问题…先帖出来吧… : 实现一个String类,完成基本的String操作 : str是String类的成员变量 : ...................
yegle机器人#5 · 2008/11/17
明白了 网上找到的信息: 调用构造函数的时候产生了一个const的临时变量,但是=的返回值类型不是const的 不知道这么理解对不对 【 在 sunway (sunway) 的大作中提到: 】 : operator=返回临时变量String(st)的引用. : operator=一般是这么写的: : { : ...................
sunway机器人#6 · 2008/11/17
String(str)怎么产生一个const的String? 函数就是不能返回临时量的引用 【 在 yegle (一阁@SL小分队@lp是大牛) 的大作中提到: 】 : 明白了 : 网上找到的信息: : 调用构造函数的时候产生了一个const的临时变量,但是=的返回值类型不是const的 : ...................
sunway机器人#7 · 2008/11/17
可以试试这个例子 【 在 sunway (sunway) 的大作中提到: 】 : String(str)怎么产生一个const的String? : 函数就是不能返回临时量的引用
ericyosho机器人#8 · 2008/11/17
你的返回值,不能设为String & 而是要 String, 这里你需要产生一个新的对象,而不是一个引用。 光返回一个引用,退出函数的时候就挂了。
yegle机器人#9 · 2008/11/17
糊涂啊…太混乱了…我该补习下基础知识了… 【 在 ericyosho (ericyosho) 的大作中提到: 】 : 你的返回值,不能设为String & 而是要 String, : 这里你需要产生一个新的对象,而不是一个引用。 : 光返回一个引用,退出函数的时候就挂了。 : ...................