Cześć, próbuję zrobić mój pierwszy projekt używając programowania obiektowego. Dlaczego w menu.cpp mogę zdefiniować funkcję "adam" z pliku gra.cpp, a nie mogę w pliku menu.cpp stworzyć obiektu "gracz" klasy "adam" z pliku gra.cpp?
Funkcja:
//main.cpp
#include "menu.hpp"
int main()
{
menu();
return 0;
}
//menu.hpp
#ifndef MENU_HPP_INCLUDED
#define MENU_HPP_INCLUDED
#include "gra.hpp"
#include <iostream>
using namespace std;
void menu();
#endif // MENU_HPP_INCLUDED
// menu.cpp
#include "menu.hpp"
void menu(){
adam(5);
}
//gra.hpp
#ifndef GRA_HPP_INCLUDED
#define GRA_HPP_INCLUDED
#include <iostream>
using namespace std;
void adam(short pkt);
#endif // GRA_HPP_INCLUDED
//gra.cpp
#include "gra.hpp"
void adam(short pkt){
cout << "Adam ma " << pkt << " pkt";
}
Klasa:
//main.cpp
#include "menu.hpp"
int main()
{
menu();
return 0;
}
//menu.hpp
#ifndef MENU_HPP_INCLUDED
#define MENU_HPP_INCLUDED
#include "gra.hpp"
#include <iostream>
using namespace std;
void menu();
#endif // MENU_HPP_INCLUDED
// menu.cpp
#include "menu.hpp"
void menu(){
adam gracz(5);
cout << "Adam ma " << gracz.ilepkt();
}
//gra.hpp
#ifndef GRA_HPP_INCLUDED
#define GRA_HPP_INCLUDED
#include <iostream>
using namespace std;
class adam;
#endif // GRA_HPP_INCLUDED
//gra.cpp
#include "gra.hpp"
class adam{
private:
short pkt;
public:
adam(short p){
pkt = p;
}
short ilepkt(){
return pkt;
}
};
Zwracany błąd:
E:\Moje Dokumenty\Programowanie\c++\gra\menu.cpp|5|error: variable 'adam gracz' has initializer but incomplete type|