C++对象的克隆
2013-10-02 00:08
225 查看
在项目中,不少地方有对象克隆,下面写个简单程序来熟悉一下对象克隆:
对象克隆:两个对象实体相等(别用相同这个词),但是所在的存储空间不同。在上例中,p和q的值是不同的,但p和q指向的对象实体相等。&a和&b不同,但是a,b两个对象实体相等。
#include <iostream> using namespace std; class A { public: int x; int y; A():x(0), y(0){} A(int s, int t):x(s), y(t){} A* clone() { A *p = new A; p->x = this->x; p->y = this->y; return p; } }; int main() { A *q = new A(1, 2); A *p = q->clone(); A a(3, 4); A b(a); delete q; delete p; return 0; }
对象克隆:两个对象实体相等(别用相同这个词),但是所在的存储空间不同。在上例中,p和q的值是不同的,但p和q指向的对象实体相等。&a和&b不同,但是a,b两个对象实体相等。
相关文章推荐
- C++设计模式6--原型模式Prototype--原始对象的克隆
- c++对象内存布局(虚函数)--上
- C++对象数组释放时的非故意内存泄露
- C++ 对象的内存布局(下)
- 对象序列化实现深度克隆
- C++对象模型-复制构造函数的构造操作
- 深度探索C++对象模型——Function语意学
- 对象布局已知时 C++ 对象指针的转换时地址调整
- C++中const在不同对象不同位置中的作用(转)
- C++之类与对象(2)
- C++对象模型
- 不懂类,对象,包,接口,继承,多态的C++高手
- c++在堆中创建对象被对其操作
- c++对象模型笔记之拷贝构造函数
- C/C++注册动态对象到Lu系统并进行运算符重载
- C++对象模型(五):The Semantics of Data Data语义学
- 为什么C++中的类不能定义自身类的对象,而java可以
- C++使用构造器初始化对象的两种方式
- 【JavaScript代码实现三】JS对象的深度克隆
- 在 C/C++中如何构造通用的对象链表