2012-07-03 2 views
0

Я хотел бы создать тип C++, который точно имитирует тип встроенного. Ниже приведен пример типа «целочисленный», который «вставляется в» тип «int». Проблема у меня есть, я хочу показать значение «целое», используя только отдельный «целочисленный» объект d, так что cout < < d будет показывать значение, а не cout < < d.show(); как бы я это сделал?Как показать значение объекта C++ по умолчанию

#include <iostream> 

class integer { 

     public: 
      integer (int x) { i = x; }; 
      integer () { }; // default constructor 

     integer operator+ (integer& c){ 
       return integer(i + c.i); 
      } 


     int show () { return i; } 


     private: 
       int i; 
}; 



int main () { 

    integer i = 5; 
    integer c (10); 
    integer d; 

    d = i + c; 

    std::cout << d.show() << std::endl; 

    std::cin.get(); 
    return 0; 
} 

ответ

5

Вы можете перегрузить operator << сделать:

ostream& operator <<(ostream& stream, const integer& myInteger) 
{ 
    return stream << myInteger.show(); 
} 

и сделать showconst.

Смежные вопросы