我试图从另一个类中调用一个构造函数。但是不幸的是我得到了这个错误:


  未在此范围内声明Fun2


这是我的代码:

class Fun1 {
public:
    Fun1 () {
        Fun2("Message");
    }
};

class Fun2 {
public:
    Fun2 (std::string s) {
        std::cout << s;
    }
};

int main()

}


如何将我的“消息”发送给另一个类的构造函数?

最佳答案

C ++通常是从上到下编译的。由于在定义之前尝试使用Fun2,因此编译器会抱怨。相反,您可以简单地首先定义您的Fun2类:

class Fun2 {
public:
    Fun2 (std::string s) {
        std::cout << s;
    }
};

class Fun1 {
public:
    Fun1 () {
        Fun2("Message");
    }
};


现在,当编译器看到您使用标识符Fun2时,它就知道它对应于什么,因为它已经看到了定义。

在某些情况下,编译器实际上会多次分析代码,在这些地方,可以在使用标识符后声明标识符(例如,成员)。

关于c++ - 为什么未在此范围内声明函数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16640244/

10-10 23:19