【发布时间】:2017-02-27 04:30:08
【问题描述】:
这是我的 A.h 文件
class A
{
public:
void menuChoice();
void displaystartingMenu(); //EDIT
};
这是我的 A.cpp 文件
#include "A.h"
void displaystartingMenu()
{
cout<<"Please enter your choice:";
}
void A::menuChoice()
{
displaystartingMenu();
cout<<"Hello"<<endl;
}
int main()
{
A a;
a.menuChoice();
}
我试着放了
void menuChoice();
在我的 cpp 文件的顶部,但它仍然无法编译。它给了我错误
在函数“int main()”中:A.cpp:112:13: 错误:“menuChoice”未在此范围内声明 menuChoice();
如何编译:g++ A.cpp A.h
正确地我什至不需要声明cpp顶部的函数,因为我已经在我的头文件中声明了它并且我已经包含在我的.cpp中。这里出了什么问题?
编辑:
错误:
In function `A::menuChoice()':
A.cpp:(.text+0x229): undefined reference to `A::displaystartingMenu()'
【问题讨论】:
-
你的意思是
A a; a.menuChoice();? -
在调用
A中的函数之前,您需要一个A的实例。这就是课堂的运作方式。如果您不希望那样,请不要使用课程。 -
但是如果我有另一个方法() 已经在类中声明为 public 放置在 menuchoice(); ,我是否必须在 menuchoice() 中创建 A 的实例;也? if method() 只是一个 cout @immibis
-
@user2601570 不。在成员函数内部,有一个类的“当前实例”,默认情况下您可以访问该实例的函数和变量。
-
@user2601570 这可能意味着你没有定义它。
标签: c++ linux ubuntu scope scope-resolution