4

以下内容来自 B.Stroustrup 的“The C++ Programming Language”第三版的第 330 页:

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) ctorSrep(0, C())应该如何在 store 中构造一个Srep对象?

4

1 回答 1

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());
}
于 2013-02-24T18:52:29.883 回答