operator=返回对象和引用的区别
2012-03-30 13:45
239 查看
class CTest { public: CTest() { printf("Constructor function is executed now!\n"); } CTest(int nID) { printf("Constructor function with parameter is executed now!\n"); m_nID = nID; } ~CTest() { printf("Destructor function is executed now!\n"); } CTest(const CTest& test) { printf("Copy constructor function is executed now!\n"); m_nID = test.m_nID; } /// <summary> /// 1,如果是返回对象,则先调用operator=,然后调用拷贝构造函数; /// 2,如果返回引用,则只是调用operator=,效率更高 /// </summary> CTest& operator=(const CTest& test) { printf("Assignment constructor function is executed now!\n"); m_nID = test.m_nID; return *this; } void printID() { printf("m_ID = %d\n", m_nID); } private: int m_nID; }; int _tmain(int argc, _TCHAR* argv[]) { //case1 //{ // CTest test1(1); // CTest test2, test3; // test3 = test2 = test1; //} //case2 { CTest test1(2); CTest *pTest2 = new CTest(test1); //只调用拷贝构造函数 delete pTest2; } getchar(); return 0; }
对于case1,执行结果如下:
对于case2,执行结果如下:
相关文章推荐
- c++返回引用和返回对象的区别
- 类成员函数返回对象和返回引用的区别
- 返回对象和返回对象的引用的区别
- 返回vector对象与引用的区别
- 返回vector对象与引用的区别
- C++返回对象和引用的区别
- 重载=时返回对象引用与非引用的区别
- 返回对象和返回对象的引用的区别···
- 赋值运算符重载函数 返回引用和返回对象的区别
- 函数返回对象和返回对象的引用的区别
- 对象引用与对象的区别
- 有关返回对象的说明------指向对象的引用、指向对象的const引用和const对象
- java--对象引用与对象的区别(转载)
- 对象引用与对象的区别?判别对象相等否?
- 基类中定义的虚函数在派生类中重新定义时,其函数原型,包括返回类型、函数名、参数个数、参数类型及参数的先后顺序,都必须与基类中的原型完全相同 but------> 可以返回派生类对象的引用或指针
- Javascript使用方括号([])引用对象的属性和方法,[]和.的区别
- 为什么有时候C++运算符重载要返回引用,附对象生存周期
- C++笔记--返回对象还是返回引用
- Java 对象与对象引用的区别
- Effective C# Item23:避免返回内部类对象的引用