Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

std::map i operator []

Ostatnio zmodyfikowano 2012-01-03 22:42
Autor Wiadomość
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ę".

C/C++
#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?
P-47198
DejaVu
» 2012-01-03 22:33:44
tak.

/edit:
Dodam, że to żadna sztuczka, ponieważ szablon std::map posiada przeciążony operator[].
P-47199
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.
P-47200
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.
P-47201
jsc
Temat założony przez niniejszego użytkownika
» 2012-01-03 22:42:04
Dzięki już poprawiłem.
P-47202
« 1 »
  Strona 1 z 1