无法访问重复类的方法

时间:2012-08-18 13:58:01

标签: c++

我正试图通过从a()创建新对象并调用其Foo方法(Foo创建一个duplicate来访问duplicate中的方法::a()新的Foo对象)。然后我打电话给#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; } ,因为我应该可以访问该课程。但它不起作用。任何人都可以解释原因吗?

{{1}}

1 个答案:

答案 0 :(得分:5)

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

foo.duplicate()->a();

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