1

C++ テンプレート - 完全ガイド』の例のpointers/countingptr.hppでは、派生従属のメンバーはポインターを使用して参照されます。この例では、なぜ が必要なのですか?class CountingPtrthisthis

this依存する基本クラス テンプレートのメンバーに名前を付けるには、ポインターが必要であることを認識しています。確かに、this依存する派生クラス テンプレートでもポインターは必要ありませんか?

4

3 に答える 3

2

必要ありません。thisどこでも使う人もいます。

于 2012-07-19T12:40:33.340 に答える
2

これは、このコードを作成した人のスタイルだと思います。this->一部の人々は、そのクラス内のクラスに関連するものの前に配置することを好みます。次のような面白いことをしている場合、それは実際に役立つことがあります。

void foo( int a )
{
this->a = a;
}

または、これにより読みやすさが向上すると思う場合。ただし、使いすぎるとめちゃくちゃになります。

this->a = this->b * this->c - this->foo( this->d, this->bar() );
于 2012-07-19T12:43:03.503 に答える
0

従属派生クラスでは必要ありません

何で?

「依存派生クラス」はありません。派生クラスは派生クラスです。

派生クラステンプレート

これはクラステンプレートですが、クラスとして解析されます。

このように考えてください:

これはクラステンプレートではなく、単なるクラス(タイプ)です。クラステンプレートの特殊化ですが、それでも通常のクラスのようなクラスです。

またはこのように:

派生クラステンプレートは、「魔法の怠惰なタイプ」引数でインスタンス化されます。この怠惰な型の引数は、それに依存する式のコンパイルを一時停止します。

于 2012-07-21T02:47:06.637 に答える