关于具有指向对象的指针的对象定义的简单示例。我们定义了一个对象A *a = new A(123.4);
,然后定义了另一个A *b = new A(*a);
我不明白的是,这对b(指向)对象的确切作用是什么?复制构造函数如何在此处启动并将值初始化为与对象a相同?我认为为了实现这个目的,我们应该在类中声明一个自定义拷贝构造函数。
#include <iostream>
using namespace std;
class A {
public:
A(float v) { A::v = v; }
float v;
float set(float v) {
A::v = v;
return v;
}
float get(float v) {
return A::v;
}
};
int main() {
A *a = new A(123.4);
A *b = new A(*a);
cout << a->v << endl;
cout << b->v << endl;
a->v = 0.0;
cout << a->v << endl;
cout << b->v << endl;
b->v = 1.0;
cout << a->v << endl;
cout << b->v << endl;
return 0;
}
该节目的输出是:
123.4
123.4
0
123.4
0
1
提前致谢。