4

以下は、B.Stroustrup の「The C++ Programming Language」Third Edition の 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());
}

上記のコンストラクターについて 2 つの質問があります。

1) ?pに置き換えるべきではありません。rep

2) ctorがストア内のオブジェクトSrep(0, C())を構築する方法は?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 に答える