[ ercha85 @ 04.02.2006. 09:34 ] @
Interesuje me kada se kod izvedenih klasa u C++ eksplicitno inicijalizuju podaci??? Pozdrav!!! |
[ ercha85 @ 04.02.2006. 09:34 ] @
[ DDMM @ 04.02.2006. 22:14 ] @
npr:
Code: class Osnovna { public: Osnovna( int _i ): i( _i ) { ; } int i; }; class Izvedena: public Osnovna { public: Izvedena( int _i, float _f ) : Osnovna( _i ) ,f( _f ) //,i(_i) GRESKA: nije dozvoljeno jer je i clan od Osnovna { ; } float f; }; [Ovu poruku je menjao DDMM dana 04.02.2006. u 23:23 GMT+1] [ ercha85 @ 05.02.2006. 02:03 ] @
Lose sam se izrazio. Ja sam se lose izrazio.
npr. #include <iostream> using namespace std; class Kvadar { static int ukId; int id; double a, b, c; public: explicit Kvadar (double aa=1, double bb=1, double cc=1) { id = ++ukId; a = aa; b = bb; c = cc; } Kvadar (const Kvadar& kk) { id = ++ukId; a = kk.a; b = kk.b; c = kk.c; } Kvadar& operator= (const Kvadar& kk) { a = kk.a; b = kk.b; c = kk.c; return *this; } double V () const { return a * b * c; } friend bool operator< (const Kvadar& k1, const Kvadar& k2) { return k1.V () < k2.V (); } friend istream& operator>> (istream& dd, Kvadar& kk) { return dd >> kk.a >> kk.b >> kk.c; } friend ostream& operator<< (ostream& dd, const Kvadar& kk) { return dd << 'K' << kk.id << '(' << kk.a << ',' << kk.b << ',' << kk.c << ')'; } }; ovo je neki zadatak. Zanima me kada se koristi "explicit"... Pomoc!!! [ NrmMyth @ 05.02.2006. 10:43 ] @
Ako deklarilar konstruktor kao 'exciplit' onda se on nece nikada implicitno upotrijebiti.
To ti moze imati primjenu kad imas vise konstruktora konverzije, a ne zelis da ti neki sami vrse konverziju. [ ercha85 @ 05.02.2006. 11:56 ] @
Thanx!!!
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|