我试图访问该方法a()在Foo通过创建一个新对象Foo,并调用它的duplicate方法(duplicate创建一个新的Foo对象).然后我打电话,::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;
}
Run Code Online (Sandbox Code Playgroud)
您必须使用->运算符来访问对象指针的成员.试试这个:
foo.duplicate()->a();
Run Code Online (Sandbox Code Playgroud)
你不能分配5(Foo::a()方法返回的整数)Foo *a,你为什么要这样做?