在项目中,不少地方有对象克隆,下面写个简单程序来熟悉一下对象克隆:
- #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两个对象实体相等。