السلام عليكم ..
معليش على القلق والإزعاج اللي سويته .. لكن عندي مشكلة قهرتني !!
انا سويت لاب في الـ c++ .. وهاللاب هو إنهيرتنس ..
يتكون من 3 كلاسات ..
ويتكون من 7 ملفات ..
Insurance.h
Insurance.cpp
Home.h
Home.cpp
AutoMobile.h
AutoMobile.cpp
main.cpp
الغريب .. لما أسوي كومبايل للفايل يطلع لي هالنتيجة .. :
--------------------Configuration: main - Win32 Debug-------------------- Compiling... main.cpp main.obj - 0 error(s), 0 warning(s)
لكن لما أحاول أسوي run للبرنامج ! يعطيني هالخطأ ..
--------------------Configuration: main - Win32 Debug-------------------- Linking... main.obj : error LNK2001: unresolved external symbol "public: void __thiscall Home::getHome(void)" (?getHome@Home@@QAEXXZ) main.obj : error LNK2001: unresolved external symbol "public: void __thiscall Home::setHome(void)" (?setHome@Home@@QAEXXZ) main.obj : error LNK2001: unresolved external symbol "public: void __thiscall AutoMobile::getAutoMobile(void)" (?getAutoMobile@AutoMobile@@QAEXXZ) main.obj : error LNK2001: unresolved external symbol "public: void __thiscall AutoMobile::setAutoMobile(void)" (?setAutoMobile@AutoMobile@@QAEXXZ) main.obj : error LNK2001: unresolved external symbol "public: __thiscall Home::Home(int,int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,double,double,double,double,double)" (??0Home@@QAE@HHV?$basic_string@ DU?$char_traits@D@std@@V?$allocator@D@2@@std@@NNNNN@Z) main.obj : error LNK2001: unresolved external symbol "public: __thiscall AutoMobile::AutoMobile(int,int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,double,class std::basic_string<char,struct std::char_trai ts<char>,class std::allocator<char> >,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,int,double,double)" (??0AutoMobile@@QAE@HHV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@N00HNN@Z) Debug/main.exe : fatal error LNK1120: 6 unresolved externals Error executing link.exe. main.exe - 7 error(s), 0 warning(s)
وأتعبني ! عور راسي بجد ..
وش الحل ؟؟؟؟ .. وايش المشكلة بالتحديد ..
والغريب .. لما أجمع الأكواد الموجوده في الملفات كلها .. وأضمها في ملف واحد ..
يشتغل البرنامج معي بشكل سليم وبدون أي مشاكل !!!!
شي غريب فعلا ..
وهذا الشي شككني في أن طريقة الربط فيما بين الملفات خاطئة لأنه أشتغل أول ماوضعتها في ملف واحد ..
لكن .. هذي هي طريقة الـ include في الملفات ..
main.cpp
#include "Insurance.h" #include "AutoMobile.h" #include "Home.h"
إستدعاء لملف الكلاس الأول وهو الـ Base Class ..
إستدعاء للكلاس الثاني والثالث AutoMobile & Home ..
وأضن الوضع هنا سليم جدا ..
في ملف الـ base class اللي هو Insurance.h أضفت فيها الكود هذا ..
#ifndef Insurance_H #define Insurance_H The Class #endif
برضوا .. أستدعاء الـ Base Class في الكلاسات الأخرى تمام ..
في AutoMobile.h :
#include "Insurance.h"
وأيضا في Home.h :
#include "Insurance.h"
الأمر لحد الآن أرى أنه 100% ..
في ملف Home.cpp إستدعاء للـ Home Class وللـ Base Class ايضا :
#include "Home.h" #include "Insurance.h"
وفي ملف AutoMobile.cpp أيضا .. :
#include "AutoMobile.h" #include "Insurance.h"
وين المشكلة طيب
