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

[C++] Publiczny interfejs klasy

Ostatnio zmodyfikowano 2012-03-05 21:35
Autor Wiadomość
fensz
Temat założony przez niniejszego użytkownika
[C++] Publiczny interfejs klasy
» 2012-03-05 19:06:51
Jestem w trakcie kodowania klasy EXP.
Wygląda ona tak:

C/C++
#ifndef CEXP_FENSZ
#define CEXP_FENSZ

#include <SFML/Graphics.hpp>

class CExp
{
public:
    CExp();
    CExp( std::string _text, sf::Font & _font, float _size );
    int GetExp();
    const int IloscExp( const bool _exp ) { return m_exp; }
    void UpdateEXP();
   
private:
    int m_dodaj;
    int m_exp;
};

#endif //CEXP_FENSZ

Gdzie
const int IloscExp(const bool _exp) { return m_exp; }
 jest metodą publiczną wyciągającą wartość m_exp - czyli po prostu ilość exp.
Proszę, pokierujcie mnie, co mam zrobić, aby za pomocą tej metody wyciągnąć m_exp do maina do funkcji save, która wygląda tak:

C/C++
void save()
{
    char savefile[] = "zapis";
   
    ofstream load_save( savefile, ios::out );
   
    load_save << licznik1 << "\n"
    // << exp << "\n"
   
    ;
}
P-52057
pekfos
» 2012-03-05 19:14:43
Ty (chyba) nie masz elementarnej wiedzy o (programowaniu obiektowym w) C++..

Proszę, pokierujcie mnie, co mam zrobić, aby za pomocą tej metody wyciągnąć m_exp do maina do funkcji save,
No nie wiem.. Może wywołać tą metodę?

P-52059
fensz
Temat założony przez niniejszego użytkownika
» 2012-03-05 19:18:08
Ok, dopiero się uczę. Ale gdy próbuje wywołać tą metodę pojawiają się błedy, podkreśla na czerwono (declaration is incompactybile)
P-52060
pekfos
» 2012-03-05 19:19:28
To podaj kod w którym są błędy.
P-52061
fensz
Temat założony przez niniejszego użytkownika
» 2012-03-05 19:22:44

1>main.cpp(56): error C2365: 'exp' : redefinition; previous definition was 'function'
1>main.cpp(56): error C2065: 'IloscExp' : undeclared identifier
1>main.cpp(403): error C2059: syntax error : '<<'

C/C++
CExp exp = IloscExp;


void save()
{
    char savefile[] = "zapis";
   
    ofstream load_save( savefile, ios::out );
   
    load_save << licznik1 << "\n"
    << IloscExp << "\n"
   
    ;
}
P-52062
SeaMonster131
» 2012-03-05 19:24:24
P-52063
pekfos
» 2012-03-05 19:25:30
Ale gdy próbuje wywołać tą metodę
I gdzie ją próbowałeś wywołać?
C/C++
CExp exp = IloscExp; //??


void save()
{
    char savefile[] = "zapis";
   
    ofstream load_save( savefile, ios::out );
   
    load_save << licznik1 << "\n"
    << IloscExp << "\n" //??
   
    ;
}
P-52064
fensz
Temat założony przez niniejszego użytkownika
» 2012-03-05 19:43:05
Udało mi się co nieco ruszyć, ale teraz kolejna zagadka

C/C++
void save()
{
    char savefile[] = "zapis";
   
    ofstream load_save( savefile, ios::out );
   
    load_save << licznik1 << "\n"
    << Exp_Game.IloscExp() << "\n"
   
    ;
}

void load()
{
    char savefile[] = "zapis";
    char load1[ 10 ], load2[ 10 ];
   
    ifstream load_save( savefile );
   
    load_save.getline( load1, 10, '\n' );
    load_save.getline( load2, 10, '\n' );
   
   
    int new_licznik1 = atoi( load1 );
    int new_exp = atoi( load2 );
   
    licznik1 = new_licznik1;
    Exp_Game.IloscExp() = new_exp; //Podkreśla mi Exp_Game
   
   
}

Przy takim kodzie, wyskakuje następujący błąd

1>main.cpp(421): error C2106: '=' : left operand must be l-value
P-52065
« 1 » 2
  Strona 1 z 2 Następna strona