在c ++中使用指向对象和operator new的指针定义对象

时间:2015-04-29 12:32:23

标签: c++ object polymorphism

关于具有指向对象的指针的对象定义的简单示例。我们定义了一个对象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

提前致谢。

0 个答案:

没有答案