[ ercha85 @ 04.02.2006. 09:34 ] @
Interesuje me kada se kod izvedenih klasa u C++ eksplicitno inicijalizuju podaci???
Pozdrav!!!
[ 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!!!