Ive использовал C++ в течение нескольких месяцев, но Ive сталкивается с ошибкой, когда я использую файлы заголовка и исходного кода. Я создаю файл исходного кода , который содержит класс пистолет (например, не текущая программа):Объявления классов в заголовочных файлах
class gun
{
private:
int stuff;
public:
void doStuff();
};
void Gun::doStuff()
{
cout << stuff << endl;
}
, а затем я создал файл заголовка и объявил класс как это:
class gun;
то в моем основной исходный файл я это сделать:
int main()
{
gun *mygun = new gun;
mygun->doStuff();
return 0;
}
однако, когда я пытаюсь выполнить его я получаю сообщение об ошибке: недопустимого использования неполного типа «класс пистолета» и я думаю, что й Проблема в том, как я объявила его в заголовке, я сделал это неправильно? как я хотел это сделать? Благодарю.
Спасибо всем, кто помог! Теперь я понимаю, я думал, что только форвардная декларация попала в заголовочный файл, спасибо за все ваши ответы!
'Gun :: DoStuff()' должен быть ' gun :: doStuff() ' –
Все определение класса -' clas s gun {...}; '- переходит в заголовочный файл. Одной только прямой декларации недостаточно для большинства применений. –
Когда вы говорите все определение класса, которое вы имеете в виду как класс gun { закрытый: int stuff; общественность: void doStuff(); }; –