码迷,mamicode.com
首页 > 其他好文 > 详细

对象的位拷贝形式

时间:2015-04-17 18:18:22      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:c++

传值方式是位拷贝形式,包括对象不调用构造函数,但会调用其析构函数
如果设计了拷贝函数,当从现有的对象创建新对象时,编译器将不使用位拷贝。编译器总是调用我们的拷贝构造函数(c++编译器自动创建的拷贝构造函数也是位拷贝的,是不安全的。所以一般自己创建。)

又一个简单的技术防止通过按值传递方式传递:声明一个私有拷贝构造函数。甚至不必去定义它,除非成员函数或友元函数需要执行按值传递方式的传递。如果用户试图用按值传递方式传递或返回对象,编译器将会发出一个错误信息

#include <iostream>
using namespace std;
class X
{
public:
    X(){cout<<"g\n";}
	~X(){cout<<"x\n";}
};
 
void copy(X k){}
int main()  
{  
	X yuan;
	copy(yuan);
}  
g
x
x
Press any key to continue


对象的位拷贝形式

标签:c++

原文地址:http://blog.csdn.net/h1023417614/article/details/45098701

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!