Niejawne rzutowanie

0

Interesuje mnie czy istnieje możliwość nie jawnego rzutowania z typu podstawowego na klasę (coś na modle polimorfizmu). Istotna jest nie jawność, da się coś takiego osiągnąć? Jak tak to jak?

pozdrawiam,
Frozen

0

Każdy konstruktor z jednym parametrem typu podstawowego (ale nie tylko) może być użyty do rzutowania o ile nie oznaczono go jako explicit.

class X
  {
   public:
   X(int x) {}
  };

X x=7;
0

Tutaj masz niejawną konwersję typu int na typ X:

#include <iostream>
 
class X {
public:    
  X() : mX(0) {}
  X(int x) : mX(x) {}
  
  int get() {
    return mX;      
  }
  
private:
  int mX;
};
 
int main() {
  X x;
  
  x = 10;
  
  std::cout << x.get();
    
  return 0;    
}

http://ideone.com/1hBKtc

Tylko to nie ma niczego wspólnego z polimorfizmem.

Edit: ojej, spóźniłem się. :-(

0

ok, dzięki za odp

1 użytkowników online, w tym zalogowanych: 0, gości: 1