我正试图通过从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}}
答案 0 :(得分:5)
您必须使用->
运算符来访问对象指针的成员。所以试试这个:
foo.duplicate()->a();
你不能将{Foo::a()
方法返回的整数)分配给Foo *a
,你为什么要这样做呢?