我正在尝试从另一个类中调用构造函数。但不幸的是我得到了这个错误:
Fun2 was not declared in this scope
这是我的代码:
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/