C++拷贝构造函数 的理解
2018-11-26 07:53:34来源:博客园 阅读 ()
#include <iostream> using namespace std; //拷贝构造函数的理解 class Point { public: Point(); Point(int X, int Y); ~Point(); Point(Point &p); void setPoint(int X, int Y) { x = X; y = Y; } public: int x, y; }; Point::Point() { x = 0; y = 0; cout << "缺省样式的构造函数\n"; } Point::Point(int X, int Y) { x = X; y = Y; cout << "正常构造\n"; } Point::~Point() { cout << "点(" << x << "," << y << ")析构函数调用完毕\n"; } Point::Point(Point &p) { x = p.x; y = p.y; cout << "拷贝构造函数\n"; } void f(Point p) { cout << "函数f之中:" << endl; p.setPoint(p.x, p.y); } void f2(Point &p) { cout << "函数f之中:" << endl; p.setPoint(p.x, p.y); } Point g() { Point a(7, 33); cout << "函数g之中:" << endl; return a; } int main(void) { Point p1(10, 10); Point p2; f(p2); f2(p1); return 0; } /*总结: 1.对于f()函数的调用,首先要“调用拷贝构造函数”以实现从实参到形参的传递 相当于语句 “形参 = 实参”(p = p2),当函数类型为引用时,就不会调用拷贝构造函数。 引用相当于别名 不申请内存空间. 2.对于构造函数和析构函数的调用时一一对应的,即“先构造的后析构”类似于栈的“先进后出”原则。 */
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- C++ 转换函数搭配友元函数 2020-06-10
- C++ 自动转换和强制类型转换(用户自定义类类型) 2020-06-10
- C++ rand函数 2020-06-10
- C++ 友元函数 2020-06-10
- C++ 运算符重载 2020-06-10
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash