Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » explicit-Angabe vor Methode bewirkt nichts!

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
26.06.2006, 13:42 Uhr
Yadgar



High!

André WILLMS, C++ programmieren lernen, S. 274ff

Klassendefinition:


Code:
#ifndef __STACK_H
#define __STACK_H

class Stack
{
   private:
   int* data;
   unsigned long anz;
   unsigned long maxanz;
  
   public:
   explicit Stack(unsigned long); // nicht zur impliziten Typumwandlung verwenden!
   ~Stack();
   bool Push(int);
   int Pop(void);
   bool isEmpty(void);
};

#endif /* __STACK_H */



In der main()-Funktion stelle ich dann aber fest, dass


Code:
Stack stack2(20);
stack2=30;



anstandslos kompiliert wird, als stünde vor dem Konstruktor gar kein "explicit"!
Woran könnte das liegen?

Bis bald im Khyberspace!

Yadgar
--
Flagmaker - ein Programmier-Blog
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
26.06.2006, 14:48 Uhr
mike
Pinguinhüpfer
(Operator)


Das bringt ne Warnung


C++:
#include <iostream>

class Foo
{
  private:
    unsigned char foobar_;
    int foobari_;
  public:
    explicit Foo(unsigned char fb);
    // Foo(int fb); <--
    ~Foo();
};

Foo::Foo(unsigned char fb)
{
  foobar_ = fb;
}

/*Foo::Foo(int fb)
{
  foobari_ = fb;
}*/


Foo::~Foo()
{

}

int main (int argc, char * const argv[]) {
  int var = 143534532;
  Foo bar = var; // <-- FEHLER
  
  Foo bar2(var); // geht immer
  
  return 0;
}


Die Zeile it FEHLER kannst du nur beheben, in dem du oben den anderen Konstruktor auskommnetierst.

lg
--

Dieser Post wurde am 26.06.2006 um 14:49 Uhr von mike editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: