C++ 在依赖派生类模板中使用this指针

C++ 在依赖派生类模板中使用this指针,c++,templates,inheritance,this,name-lookup,C++,Templates,Inheritance,This,Name Lookup,在图书示例中,使用this指针引用派生的依赖类CountingPtr的成员。为什么在这个例子中有必要这样做 我知道,命名依赖基类模板的成员需要this指针。当然,依赖派生类模板中也不需要this指针?不需要它。有些人在任何地方都使用它。不需要它。有些人在任何地方都使用它。我相信这只是编写代码的人的一种风格。有些人喜欢将->放在与该类中的类相关的任何内容前面。如果你正在做一些有趣的事情,比如: void foo( int a ) { this->a = a; } 或者,如果你认为这会增加可

在图书示例中,使用this指针引用派生的依赖类CountingPtr的成员。为什么在这个例子中有必要这样做


我知道,命名依赖基类模板的成员需要this指针。当然,依赖派生类模板中也不需要this指针?

不需要它。有些人在任何地方都使用它。

不需要它。有些人在任何地方都使用它。

我相信这只是编写代码的人的一种风格。有些人喜欢将->放在与该类中的类相关的任何内容前面。如果你正在做一些有趣的事情,比如:

void foo( int a )
{
this->a = a;
}
或者,如果你认为这会增加可读性。 但是,如果你用得太多,它会变得一团糟:

this->a = this->b * this->c - this->foo( this->d, this->bar() );

我相信这只是一种编写代码的人的风格。有些人喜欢将->放在与该类中的类相关的任何内容前面。如果你正在做一些有趣的事情,比如:

void foo( int a )
{
this->a = a;
}
或者,如果你认为这会增加可读性。 但是,如果你用得太多,它会变得一团糟:

this->a = this->b * this->c - this->foo( this->d, this->bar() );
依赖派生类中不需要

在什么地方

没有依赖的派生类。派生类就是派生类

派生类模板

它是一个类模板,但被解析为一个类

这样想:

它不是一个类模板,只是一个类a类型。一个类模板专业化,但仍然是一个类,像一个普通类

或者这样:

派生类模板用一个神奇的惰性类型参数实例化。此惰性类型参数将挂起依赖于它的任何表达式的编译

依赖派生类中不需要

在什么地方

没有依赖的派生类。派生类就是派生类

派生类模板

它是一个类模板,但被解析为一个类

这样想:

它不是一个类模板,只是一个类a类型。一个类模板专业化,但仍然是一个类,像一个普通类

或者这样:


派生类模板用一个神奇的惰性类型参数实例化。这个懒惰类型的参数会暂停编译任何依赖它的表达式。

你试过省略它吗?不。我正在研究文本,我认为它存在的原因我还不明白。你试过省略它吗?不。我在研究文本,我认为它存在的原因我还不明白。奇怪。在这本书中,作者们第一次决定如此明确。双关语。如果你总是使用这个,那么你不会忘记它的依赖基础成员。奇怪。在这本书中,作者们第一次决定如此明确。双关语。如果你总是使用它,那么你不会忘记它的依赖基础成员。