1

在C++ Templates - The Complete Guide一书的示例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 回答