std::map i operator []
Ostatnio zmodyfikowano 2012-01-03 22:42
jsc Temat założony przez niniejszego użytkownika |
std::map i operator [] » 2012-01-03 22:31:26 Wymyśliłem sobie taką "sztuczkę".
#include <iostream> #include <map>
using namespace std;
class cos;
map < int, cos *> akcja;
int main() { cos jeden = cos( 1 ); akcja[ 1 ]->metoda(); return 0; }
class cos { public: cos( int ktory ) { akcja[ ktory ] = this; } void metoda() { cout << "Yuchu" << endl; } };
Mam takie pytanie: Czy odwołanie akcja [1] -> metoda jest w świetle reguł języka C++ legalne? |
|
DejaVu |
» 2012-01-03 22:33:44 tak.
/edit:
Dodam, że to żadna sztuczka, ponieważ szablon std::map posiada przeciążony operator[]. |
|
jsc Temat założony przez niniejszego użytkownika |
» 2012-01-03 22:36:49 To dobrze, tylko że kompilator (Code Blocks 10.05) wyrzuca, że typ cos jest niekompletny. |
|
DejaVu |
» 2012-01-03 22:38:45 Bo używasz implementacji klasy zanim zostanie ona zadeklarowana - w skrócie: w złej kolejności piszesz kod. |
|
jsc Temat założony przez niniejszego użytkownika |
» 2012-01-03 22:42:04 Dzięki już poprawiłem. |
|
« 1 » |