C++学习笔记_5:拷贝构造函数
2013-05-17 15:11
204 查看
//拷贝构造函数 //拷贝构造函数是一种特殊的构造函数,其形参为本类的对象引用。 //作用:使用一个对象(参数指定的对象),去初始化一个正在被建立的同类型对象 //class 类名 //{ //public : // 类名(形参); //构造函数 // 类名(类名 &对象名);//拷贝构造函数 // ... //}; //类名:: 类名(类名 &对象名) //拷贝构造函数的实现 //{函数体} //如果程序员没有为类声明拷贝初始化构造函数,则编译器自己生成一个拷贝构造函数。 //这个构造函数执行的功能是:用作为初始值的对象的每个数据成员的值,初始化将要建立的对象的对应数据成员。 class Point { public: Point(int xx = 0,int yy = 0) { X=xx; Y=yy; } Point(Point& p); //拷贝构造函数 int GetX() {return X;} int GetY() {return Y;} private: int X,Y; }; Point::Point(Point& p) { X = p.X; Y = p.Y; cout<<"拷贝构造函数被调用"<<endl; } //(1)当用类的一个对象去初始化该类的另一个对象时系统自动调用它实现拷贝赋值。 int main(void) { Point A(1,2); Point B(A); //拷贝构造函数被调用 cout<<B.GetX()<<endl; return 0; } //(2)若函数的形参为类对象,调用函数时,实参赋值给形参,系统自动调用拷贝构造函数。例如: void fun1(Point p) { cout<<p.GetX()<<endl; } int main() { Point A(1,2); fun1(A); //调用拷贝构造函数 return 0; } //(3)当函数的返回值是类对象时,系统自动调用拷贝构造函数。例如: Point fun2() { Point A(1,2); return A; //调用拷贝构造函数 } int main() { Point B; B = fun2(); return 0; }
相关文章推荐
- C++学习笔记――引用与拷贝构造函数
- C++学习笔记---拷贝构造函数
- C++学习笔记-----在重载的赋值运算函数中调用拷贝构造函数
- C++学习笔记(构造函数和拷贝构造函数)
- Effective C++ 学习笔记:为含指针变量的类声明一个拷贝构造函数和一个赋值操作符
- C++ 学习笔记(13)拷贝构造函数、拷贝赋值运算符、移动构造函数、移动赋值运算符、析构函数、右值引用、引用限定符
- c++学习笔记(二):c++拷贝构造函数应用的四种场景
- c++学习笔记--拷贝构造函数
- 我的学习笔记——c++拷贝构造函数,重载赋值操作符
- C++学习笔记(一).拷贝构造函数
- c++ primer 学习笔记:类之构造函数
- C++模版的详细介绍(学习笔记)
- C++学习笔记1-namespace是什么东西?
- C++程序设计语言学习笔记(一)
- 【C++学习笔记】函数基础和参数传递
- C++学习笔记(四)
- 传智播客c/c++公开课学习笔记--邮箱账户的破解与邮箱安全防控
- C++学习笔记——共用数据的保护(const关键字)
- 设计模式C++学习笔记之十七(Chain of Responsibility责任链模式)
- 深入浅出MFC学习笔记:(第一章:win32基本概念,第二章:C++的重要性质)