void Serialize( CArchive& ) {;} 是什么意思?
我读到了如下程序,但我看不懂
---------------------------------------
// CObject contains the Serialize() method which need to be implemented.
void Serialize( CArchive& ) {;}
//dna: included thiru 's change - made the return a reference to CString
CString& GetErrorString();
---------------------------------------
1. 请问 "void Serialize( CArchive& ) {;} " 这一句应该和 "void Serialize( CArchive &a ) {;} " 是一样的吧?
2. 最后一句: "CString& GetErrorString(); "中,返回类型是 "CString& "是什么意思?
[解决办法]
问题1,还和void Serialize( CArchive& ) {}等价
问题2,返回类型为引用。
[解决办法]
1.差不多,函数声明的时候完全可以不写参数名,定义的时候,如果用到了就写,如果没用到,只是等将来扩充用,也可以不写。
2.返回的是引用类型,这样返回的效率一般会高,就像传递引用参数比一般的值传递效率高一样。
[解决办法]
楼主,再忠告你一次,先补补C++基础吧。
如果你C++基础不牢而强行学这些东西,开始的时候可能没什么感觉,不过等过一段时间你就会发现其实什么都没学懂。最多只会完全套用别人的源码。那是你就会体会到“勿在浮砂筑高台”了。
到那时候,如果你还想继续学,一定会回过头来补C++的,而且会后悔当初怎么没先学C++。
[解决办法]
"勿在浮砂筑高台 "
顶一下
[解决办法]
mochen5460
应该静下心来看看TC++PL
[解决办法]
更正一下,只是对
mochen5460
的补充
[解决办法]
有人带,有地方问,不怕困难,这样长点见识 可能也不错. 不过连返回引用都不知道,看MFC是有点困难.
[解决办法]
C++ Primer
[解决办法]
下载 :http://download.chinaitlab.com/DownFile.asp?ID=6823
[解决办法]
1.差不多,函数声明的时候完全可以不写参数名,定义的时候,如果用到了就写,如果没用到,只是等将来扩充用,也可以不写。
补充steedhorse(晨星) 一句,如果你写了参数名而在函数中没有引用的话,编译器会产生警告信息,这时如果不写参数名,可以避免编译器产生警告
[解决办法]
1. 请问 "void Serialize( CArchive& ) {;} " 这一句应该和 "void Serialize( CArchive &a ) {;} " 是一样的吧?
答:语义上是等价的。但是第二种情况可能会产生一个warning,因为有一个未使用的参数a,而第一种情况则不会有warning。个人比较喜欢写成:
void Serialize( CArchive& /* a */) {;}
2. 最后一句: "CString& GetErrorString(); "中,返回类型是 "CString& "是什么意思?
答:返回引用类型,避免拷贝。