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

Dziedziczenie konstruktora, C++

Ostatnio zmodyfikowano 2009-07-29 08:58
Autor Wiadomość
manfred
» 2009-07-28 19:43:28
A definicja zmiennej pPlayer to gdzie? Bo ja widzę tylko deklarację.
P-19098
manfred
» 2009-07-28 20:22:40
W wersji dla leniwych (bo np. kurs ethourisa ładnie wyjaśnia, czym jest deklaracja, a czym definicja, wystarczy przeczytać): w main.cpp musisz dać
C/C++
cPlayer * pPlayer; //in global scope
P-19100
manfred
» 2009-07-28 20:57:31
Ale że co? Jeśli chcesz mieć konstruktor z argumentami, to najpierw taki napisz w klasie pochodnej tak, żeby wywoływyał tego z bazowej z odpowiednimi argumentami.
P-19101
manfred
» 2009-07-28 22:17:03
Bo można callnąć tylko konstruktor klasy bezpośrednio bazowej...
P-19102
manfred
» 2009-07-28 22:33:38
Ale ona nie ma parametrów.
P-19103
manfred
» 2009-07-28 23:05:11
Chodzi tylko o to, żeby mówić poprawnie, do jasnej cholery... Parametr to coś, co określa jakiś parametryzowany twór - na przykład równanie z parametrem jest tylko bazą do stworzenia "pełnoprawnego" równania. Funkcje mają argumenty.
@up: Jak mógł prezydent, to i ja: "spadaj dziadu";P
A odpowiadając na pytanie - to w klasie bezpośrednio bazowej zrób /chroniony?/ konstruktor, który wyforwarduje odpowiednie rzeczy do konstruktora cObject.
P-19104
manfred
» 2009-07-28 23:26:02
C/C++
struct zuo {
    zuo( int a )
        : myA( a )
    { }
private: int myA;
};
struct zuezuo
    : zuo
{
    zuezuo( int b )
        : zuo( 666 )
        , myB( b )
    { }
    zuezuo( int a, int b )
        : zuo( a )
        , myB( b )
    { }
private: int myB;
};
struct zuooo
    : zuezuo
{
    zuooo()
        : zuezuo( 1, 2 ) /* zuo.myA = 1, zuezuo.myB = 2*/
        , myC( 443556 )
    { }
private: int myC;
};
Odpowiedź na pytanie - nie :P.
P-19105
manfred
» 2009-07-29 08:58:51
Popraw na:
C/C++
cCharacter::cCharacter( int iMaxHP, int iAttack, int iDefense, int iInjuryMin, int iInjuryMax, string strName, int iPositionX, int iPositionY, string strPathOfFile )
    : cObject( strName, iPositionX, iPositionY, strPathOfFile )
{ }
i
C/C++
cPlayer::cPlayer( int iMaxHP, int iAttack, int iDefense, int iInjuryMin, int iInjuryMax, string strName, int iPositionX, int iPositionY, string strPathOfFile )
    : cCharacter( iMaxHP, iAttack, iDefense, iInjuryMin, iInjuryMax, strName, iPositionX, iPositionY, strPathOfFile )
{ }
Mnie się wydaje, że jak sadzisz takie kwiatki, to nigdy nie miałeś do czynienia z funkcjami...
P-19106
1 2 3 « 4 »
Poprzednia strona Strona 4 z 4