不得不说C ++是一个广阔的海洋的存在,它剖析后真的全是哲理!!!
首先我们说说C ++的6个默认函数:默认构造,默认析构,拷贝构造,取值运算,常量常量取值,赋值运算符。
************************************************** **************************************************
那我们就简单说说拷贝构造函数,,,为什么要有它的存在呢?
开始我以为有没有它无所谓呀?反正平常也不用,其实大错特错了。一般我们给类初始化的时候使用构造函数,
当我们传值,传地址,或者说引用的时候,我们以为没有用拷贝构造函数,其实是系统默认创造了一个备份,
当我们改变构造的对象时候,我们总是以为对象本质没有改变?其实是改变了,只不过有拷贝构造的存在,所以
对象的值不会改变,而它的定义时常量所以不会改变。
************************************************** **************************************************
#include <iostream>
using namespace std;
class Example
{
int m_nTest;
public:
Example(int x):m_nTest(x) //带参数构造函数
{
cout << "构造"<<endl;
}
Example(const Example & ex) //拷贝构造函数
{
m_nTest = ex.m_nTest;
cout << "拷贝构造"<<endl;
}
Example& operator = (const Example &ex)//赋值函数(赋值运算符重载)
{
cout << "赋值"<<endl;
m_nTest = ex.m_nTest;
return *this;
}
void myTestFunc(Example ex)
{
}
};
int main()
{
Example aaa(2); //构造
Example bbb(3); //构造
bbb = aaa; //赋值 因为bbb实例了
Example ccc = aaa; //拷贝构造
bbb.myTestFunc(aaa); //拷贝构造,注意!这也是为什么拷贝构造使用参数为引用 为了防止它无限的拷贝构造!
system("pause");}