Netclass.h: Funktionsprototypen (bzw. eigtl Methoden)
Netclass.cpp: Methoden
user.cpp: hier steht die main() die ausgeführt werden soll.
das problem ist: wenn ich den konstruktor direkt in die klasse packe, meckert der linker nicht. wenn ich nur den prototypen in der klasse angebe und den konstruktor in der datei Netclass.cpp realisiere, meint der linker, er kennt die funktion nicht.
hier der relevante code:
user.cpp
Code: Alles auswählen
[...]
#include "Netclass.h"
[...]
void user_main()
{
class Net Testnet = Net("Testnet");
}
netclass.h
Code: Alles auswählen
class Net
{
[...]
Net(string Name){this->Name = Name;}
[...]
};
netclass.h
Code: Alles auswählen
class Net
{
[...]
Net(string Name);
[...]
};
Code: Alles auswählen
[...]
#include "Netclass.h"
[...]
Net::Net(string Name)
{
this->Name = Name;
}
Warning 1 warning LNK4042: object specified more than once; extras ignored C:\HS\Sync\Semester VII\ADS\Projekt\Sync\Jones\Debug\Netclass.obj 1 1 ADS_NET
Error 2 error LNK2019: unresolved external symbol "public: __thiscall Node::Node(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (??0Node@@QAE@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) referenced in function "void __cdecl user_main(void)" (?user_main@@YAXXZ) C:\HS\Sync\Semester VII\ADS\Projekt\Sync\Jones\user.obj ADS_NET
Error 3 error LNK1120: 1 unresolved externals C:\HS\Sync\Semester VII\ADS\Projekt\Sync\Jones\Debug\ADS_NET.exe 1 1 ADS_NET
die zweite fehlermeldung bringt mir leider überhaupt nichts, da ich einfach nicht raffe wieso er die funktion nicht kennt, intellisense kennt sie jedenfalls
muss ich irgendwo ein extern hinklatschen?
die erste verstehe ich auch nicht. ich hab doch nur den prototypen sowie die realisierung. wo soll da "more than once" sein?
das witzige ist auch, dass es bereits funktioniert hat und ich eigentlich an einer komplett anderen stelle gearbeitet habe als der fehler auftrat. einmal kam der fehler, ich hab "rebuild all" gemacht und der fehler war weg. alles sehr dubios. "clean" hat auch nichts gebracht. arbeite mit visual studio 2010.