c++ 构造函数深层复制示例
2011-04-05 20:14
399 查看
/*******************************************************
*author:彭晓林
*copyright: 版权所有,翻版不究
*function: 构造函数深层复制示例
******************************************************/
#include <iostream>
#include <string>
using namespace std;
class DEMO
{
public:
DEMO(int a)
{
int* temp = new int;
x = temp;
*x = a;
}
void set(int a)
{
*x = a;
}
DEMO(DEMO &demo)
{
int* a = new int;
*a = *(demo.x);
*x = *a;
}
void print();
private:
int* x;
};
void DEMO::print()
{
cout<<"x = "<<*x<<endl;
cout<<"x address :"<<x<<endl;
}
int main()
{
DEMO* TestA = new DEMO(1);
TestA->print();
DEMO TestB(*TestA);
TestB.print();
TestB.set(32);
TestA->print();
TestB.print();
while(1);
}
*author:彭晓林
*copyright: 版权所有,翻版不究
*function: 构造函数深层复制示例
******************************************************/
#include <iostream>
#include <string>
using namespace std;
class DEMO
{
public:
DEMO(int a)
{
int* temp = new int;
x = temp;
*x = a;
}
void set(int a)
{
*x = a;
}
DEMO(DEMO &demo)
{
int* a = new int;
*a = *(demo.x);
*x = *a;
}
void print();
private:
int* x;
};
void DEMO::print()
{
cout<<"x = "<<*x<<endl;
cout<<"x address :"<<x<<endl;
}
int main()
{
DEMO* TestA = new DEMO(1);
TestA->print();
DEMO TestB(*TestA);
TestB.print();
TestB.set(32);
TestA->print();
TestB.print();
while(1);
}
相关文章推荐
- c++ 默认构造函数,构造函数,复制构造函数,赋值操作符,析构函数调用示例
- C++在类之间调用static_cast转换时,需要复制构造函数
- 【c++程序】重载构造函数(示例)
- 【c++程序】成员变量的初始化与构造函数(示例)
- c++防止构造函数隐式转换示例
- C++继承与构造函数、复制控制
- 【c++primer——】第13章复制控制——01深入理解复制构造函数
- C++在单继承、多继承、虚继承时,构造函数、复制构造函数、赋值操作符、析构函数的执行顺序和执行内容
- C++中复制构造函数和隐式转换
- C++中复制构造函数与重载赋值操作符总结
- c++ 类初始化列表,构造函数,复制构造函数
- C/C++开发语言系列之26---C++复制(拷贝)构造函数
- C++中构造函数、复制构造函数和赋值操作符
- C++深层复制解决指针悬挂
- C++在单继承、多继承、虚继承时,构造函数、复制构造函数、赋值操作符、析构函数的执行顺序和执行内容
- C++在单继承、多继承、虚继承时,构造函数、复制构造函数、赋值操作符、析构函数的执行顺序和执行内容 【转】 参考度4.6星
- C++:复制构造函数
- C++在单继承、多继承、虚继承时,构造函数、复制构造函数、赋值操作符、析构函数的执行顺序和执行内容
- c++ 构造函数,析构函数,复制构造函数
- C++自定义拷贝(复制)构造函数的用途