की अपूर्ण प्रकार/अग्रेषित घोषणा का अमान्य उपयोग मेरी समस्या बहुत आम है, मुझे पता है लेकिन मैं खोज रहा हूं और हर समाधान की कोशिश कर रहा हूं और अभी भी काम नहीं कर रहा हूं। तो किसी भी मदद की सराहना की जाएगी! =)त्रुटि -
अग्रिम धन्यवाद!
g++ -ISFML/include -Iclasses/ -W -Wall -Werror -c -o classes/Object.o classes/Object.cpp
In file included from classes/Core.hh:18:0,
from classes/Object.hh:4,
from classes/Object.cpp:1:
classes/MapLink.hh:9:1: error: invalid use of incomplete type ‘struct Object’
classes/MapLink.hh:6:7: error: forward declaration of ‘struct Object’
In file included from classes/Core.hh:19:0,
from classes/Object.hh:4,
from classes/Object.cpp:1:
classes/Player.hh:9:1: error: invalid use of incomplete type ‘struct Object’
classes/MapLink.hh:6:7: error: forward declaration of ‘struct Object’
make: *** [classes/Object.o] Error 1
तो बुनियादी तौर पर, मुझे मिल गया है एक मुख्य युक्त (main.cpp)
#include "Core.hh"
int main(void)
{
...
}
यहाँ हैडर मेरे सभी शामिल हैं (कोर युक्त फ़ाइल है:
मैं संकलन पर यह त्रुटि है .hh)
#ifndef __CORE_HH__
# define __CORE_HH__
#include ...
#include "Object.hh"
#include "MapLink.hh"
#include "Player.hh"
class Core
{
...
};
#endif /* __CORE_HH__ */
और फिर फ़ाइलों को उत्पन्न कर रहे हैं मुझे मुसीबतों (Object.hh)
#ifndef __OBJECT_HH__
# define __OBJECT_HH__
#include "Core.hh"
class Object
{
...
};
#endif /* __OBJECT_HH__ */
(MapLink.hh)
#ifndef __MAPLINK_H__
# define __MAPLINK_H__
#include "Core.hh"
class Object;
class MapLink : public Object
{
...
};
#endif /* __MAPLINK_H__ */
(Player.hh)
#ifndef __PLAYER_H__
# define __PLAYER_H__
#include "Core.hh"
class Object;
class Player : public Object
{
...
};
#endif /* __PLAYER_H__ */
हेडर गार्ड के लिए आपको [आरक्षित नाम] (http://stackoverflow.com/questions/228783) का उपयोग नहीं करना चाहिए; यह http://stackoverflow.com/questions/3345159 –
जैसी समस्याओं का कारण बन सकता है यहां आपके शीर्षक में एक ही त्रुटि के साथ मेरी अपनी स्थिति का समाधान है, लेकिन शायद आपके लिए नहीं: मुझे शिकायत के तहत उस वर्ग का शीर्षलेख शामिल करना था मेरे सीपीपी में, अगर कक्षा की सार्वजनिक विधि को किसी अन्य वर्ग द्वारा संदर्भित किया गया था। मेरे पास बहुत जटिल निर्भरताएं थीं और आगे की घोषणाओं के मिश्रित उपयोग भी शामिल थे। मैं इसे समाधान के मुकाबले यहां एक नोट के रूप में लिख रहा हूं क्योंकि आपके पास पहले से ही एक था। – kakyo