作者对下面的伪代码有何意义?

时间:2013-02-24 18:44:47

标签: c++ templates

以下内容是在第330页的B.Stroustrup" C ++编程语言"第三版:

template<class C> struct String<C>::Srep {
  C* s;   // pointer to elements
  int sz; // number of elements
  int n; // reference count
  // ...
};

template<class C> C String<C>::read(int i) const { return rep->s[i];}

template<class C> String<C>::String()
{
  p = new Srep(0, C());
}

我对上面的构造函数有两个问题:

1)不应该p替换rep吗?

2)ctor Srep(0, C())应如何在商店中构建Srep对象?

1 个答案:

答案 0 :(得分:3)

至1):是的。在我的书中,我有以下代码:

template<class C> struct String<C>::Srep {
  C* s;   // pointer to elements
  int sz; // number of elements
  int n; // reference count
};

template<class C> C String<C>::read(int i) cont { return rep->s[i];}

template<class C> String<C>::String<C>()
{
  rep = new Srep(0, C());
}