无法访问重复类的方法

tem*_*boy 0 c++

我试图访问该方法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)

Mar*_*mer 5

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

foo.duplicate()->a();
Run Code Online (Sandbox Code Playgroud)

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