0

我试图通过创建一个新对象并调用它a()的方法来访问该方法(创建一个新的 Foo 对象)。然后我打电话,因为我应该可以进入课堂。但它不起作用。谁能解释为什么?FooFooduplicateduplicate::a()

#include <iostream>
using std::cout;

class Foo {
    public:
        int a() { return 5; }

        Foo *duplicate() {
            return new Foo();
        }
};

int main() {

    Foo foo;

    Foo *a = foo.duplicate()::a(); // should return 5

    cout << a;

}
4

1 回答 1

5

您必须使用->运算符来访问对象指针的成员。所以试试这个:

foo.duplicate()->a();

而且您不能将 5(Foo::a()方法返回的整数)分配给Foo *a,您为什么要这样做?

于 2012-08-18T13:59:45.753 回答