C++:复制构造函数在什么时候被调用?
摘要:1、对象在创建时使用其他的对象初始化Person p(q); //此时复制构造函数被用来创建实例pPerson p = q; //此时复制构造函数被用来在定义实例p时初始化p2、对象作为函数的参数进行值传递时f(p); //此时p作为函数的参数进行值传递,p入栈时会调用复制构造函数创建一个局部对象,与函数内的局部变量具有相同的作用域需要注意的是,赋值并不会调用复制构造函数,赋值只是赋值运算符(重载)在起作用p = q; //此时没有复制构造函数的调用!简单来记的话就是,如果对象在声明的同时将另一个已存在的对象赋给它,就会调用复制构造函数;如果对象已经存在,然后将另一个已存在的对象赋给它,调用的
阅读全文
posted @
2012-09-28 10:17
vinsonLu
阅读(16437)
推荐(2) 编辑
为含指针变量的类声明一个拷贝构造函数和一个赋值操作符
摘要:C++编译器会为每个类自动生成一个默认的构造函数、析构函数、赋值函数、拷贝构造函数,这当然是在你没有为你的类声明这些函数的时候。这些默认的功能函数在为你提供方便的时候,也会给你带来麻烦。例如:class string {public: string(const char *value); ~string(); ... // 没有拷贝构造函数和operator= private: char *data;}; string::string(const char *value){ if (value) { data = new c...
阅读全文
posted @
2012-09-27 18:02
vinsonLu
阅读(1713)
推荐(0) 编辑
冒泡排序算法
摘要://@冒泡排序算法 //@author: vinson//@date: 2012.9.20 //算法思想:从最后的数字开始依次与前面的两两比较,并将 // 较大(较小)放在前面(交换位置),一趟排序 // 就将最大(最小)的数字排在了前面。依次进行 // n-1趟排序,且前面排好的不管 。 #include <iostream> using namespace std; void Swap(int &x, int &y) { int t; t= x; x= y; y= t; } void Bubble...
阅读全文
posted @
2012-09-20 17:19
vinsonLu
阅读(261)
推荐(0) 编辑