以下は、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