1.6.2 类模板

/**
*一个模拟内存单元的类
*/
template <typename Object>
class MemoryCell
{
   public:
     explicit MemoryCell(const Object & initialValue = Object{})
       : storedValue{initialValue}{}
     const Object & read() const
      { return storedValue;}
     void write(const Object & x)
      { storedValue = x;}
   private:
      Object storedValue;
};

显示的是MemoryCell模板。假设Object有一个零参数构造函数,一个拷贝构造函数和一个拷贝赋值运算符,MemoryCell虽像IntCell类,但是却为任何类型的Object工作。默认参数则是使用零参数构造函数一个Object对象所得的结果。

int main()
{
    MemoryCell<int>     m1;
    MemoryCell<string>  m2{"hello"};

    m1.write(37);
    m2.write(m2.read()+"word");
    cout<<m1.read()<<endl<<m2.read()<<endl;

    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值