// (4)返回本对象的引用 // 3分
return *this;
}
我记得我去年初买了<<inside c++ object modules>>时,里面也以string为例作了一个介绍,不过书到用时找不到,因为我已送给好学后进了。而电子版的,我当时在网上看了,但好像没当下来。我依稀记得里面的拷贝构造函数也要判断if(this == &other)的,不过我认为要是已实现了operator==函数的话,if(*this == other)会更好一些,因为例如象string的两个对象,内容一样,一个给另一个赋值时,用if(*this == other)的判断的话,就可避免下一些操作了。黑夜给了我黑色的眼,我睁一只眼闭一只眼都可以看出上面的标准答案里关于拷贝构造函数中没有这样的判断,对了,上文中的operator被误写成operate了,那些公司里的试题也是这样子的,让我看的时候愣了下。
大家可能会认为拷贝构造函数是构造函数,怎么会传进去它自己呢?肯定是别的对象了。很搞笑的是:string ss(ss),没错,string ss(ss=”xieyingjun”)也是对的写法(对了,我没就这个c++语意查看c++标准,要是根据c++98的标准,我的说法扯淡,也请付之一笑)。文后我附上本篇文章的测试代码。您也可以在c++builder中先打上这两行,看看结果:ansistring ss(ss=”xieyingjun”);showmessage(ss); 不过,很不幸,类似的代码用stl中的string或vc中的cstring来实现,运行结果好象并非是一帆风顺。