Guten Abend,
Ich habe folgendes Problem und bin mit meinem Latein am Ende
:
Ich habe eine Klasse namens "CIDCard". Für diese wird in meiner "game.hpp", also im Hauptheader, eine std::list mit dem namen m_cards generiert.
Nun willl ich bei folgenden Codezeilen mehere CIDCard Objekte mittels push_back(NewCard) in die list schreiben:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
for(It = m_streets.begin(); It != m_streets.end(); ++ It)
{
if(It->GetColor()==Color)
{
Coloum ++;
}
else
{
Color = It->GetColor();
Row ++;
Coloum = 0;
}
CIDCard NewCard;
NewCard.Init(X+Coloum*XPlus,Y+Row*YPlus,It->GetStreetID(),BesitzerIDtoName(It->GetBesitzer()),true);
m_cards.push_back(NewCard);
}
|
Wenn ich kompilieren will kommen folgende Fehler:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
|
D:\Daten\Programmierung\C++\StreetX\game.cpp||In member function `std::string CGame::BesitzerIDtoName(int)':|
D:\Daten\Programmierung\C++\StreetX\game.cpp|1178|warning: control reaches end of non-void function|
C:\Program Files\CodeBlocks\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\include\c++\3.4.5\bits\stl_construct.h|81|instantiated from `void std::_Construct(_T1*, const _T2&) [with _T1 = CIDCard, _T2 = CIDCard]'|
C:\Program Files\CodeBlocks\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\include\c++\3.4.5\bits\stl_list.h|438|instantiated from `std::_List_node<_Tp>* std::list<_Tp, _Alloc>::_M_create_node(const _Tp&) [with _Tp = CIDCard, _Alloc = std::allocator<CIDCard>]'|
C:\Program Files\CodeBlocks\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\include\c++\3.4.5\bits\stl_list.h|1163|instantiated from `void std::list<_Tp, _Alloc>::_M_insert(std::_List_iterator<_Tp>, const _Tp&) [with _Tp = CIDCard, _Alloc = std::allocator<CIDCard>]'|
C:\Program Files\CodeBlocks\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\include\c++\3.4.5\bits\stl_list.h|785|instantiated from `void std::list<_Tp, _Alloc>::push_back(const _Tp&) [with _Tp = CIDCard, _Alloc = std::allocator<CIDCard>]'|
D:\Daten\Programmierung\C++\StreetX\game.cpp|1470|instantiated from here|
C:\Program Files\CodeBlocks\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\include\c++\3.4.5\bits\ios_base.h|781|error: `std::ios_base::ios_base(const std::ios_base&)' is private|
C:\Program Files\CodeBlocks\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\include\c++\3.4.5\bits\stl_construct.h|81|error: within this context|
C:\Program Files\CodeBlocks\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\include\c++\3.4.5\streambuf|769|error: `std::basic_streambuf<_CharT, _Traits>::basic_streambuf(const std::basic_streambuf<_CharT, _Traits>&) [with _CharT = char, _Traits = std::char_traits<char>]' is private|
C:\Program Files\CodeBlocks\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\include\c++\3.4.5\bits\stl_construct.h|81|error: within this context|
||=== Erstellen beendet: 4 Fehler, 231 Warnungen===|
|
Ich lese daraus dass das Programm aus irgendeinem Grund auf die std::ios_base() zugreifen will und dies nicht darf, weil sie private ist
Da ich die push_back funktion schon häufig (auch in diesem Programm) verwendet habe, wunderts mich das er jetzt auf einen Fehler läuft.
Achja, wenn ich die Zeile 16 auskommentiere, funktionier alles einwandfrei...
Hoffe ihr könnt mir helfen,
Shutdown