Это мой Ah файлне декларировать объем при компиляции г ++
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, но он все равно не будет компилироваться. он дает мне ошибку
In function ‘int main()’: A.cpp:112:13: error: ‘menuChoice’ was not declared in this scope menuChoice();
Как скомпилировать: г ++ a.cpp Ах
по праву мне не нужно даже объявлять функцию верхней части CPP, потому что я уже объявим его в моем файл заголовка, и я включил его в свой .cpp. Что здесь не так?
EDIT:
Ошибка:
In function `A::menuChoice()':
A.cpp:(.text+0x229): undefined reference to `A::displaystartingMenu()'
Вы имели в виду 'A a; a.menuChoice(); '? – songyuanyao
Вам нужен экземпляр 'A', прежде чем вы сможете вызывать функции в' A'. Вот как работают классы. Если вы этого не хотите, не используйте класс. – immibis
, но что, если у меня есть еще один метод(), который уже объявлен публичным в классе для размещения внутри menuchoice(); , я должен сделать экземпляр A в menuchoice(); также? if method() является просто cout @immibis – what