0

我想创建一个完全模仿内置类型的 c++ 类型。下面是一个将“int”类型“装箱”的“integer”类型的示例。我遇到的问题是,我想仅使用独立的“整数”对象 d 显示“整数”的值,这样 cout << d 将显示该值,而不是 cout << d.show ( ); 我该怎么做?

#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;   
}
4

1 回答 1

5

你可以重载operator <<来做到这一点:

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

并使show const.

于 2012-07-03T09:40:49.953 回答