在C++ Templates - The Complete Guide一书的示例pointers/countingptr.hpp中,派生依赖项的成员使用指针来引用。为什么在这个例子中是必要的?class CountingPtr
this
this
我知道this
需要指针才能命名依赖基类模板的成员。当然this
,依赖派生类模板中也不需要指针吗?
在C++ Templates - The Complete Guide一书的示例pointers/countingptr.hpp中,派生依赖项的成员使用指针来引用。为什么在这个例子中是必要的?class CountingPtr
this
this
我知道this
需要指针才能命名依赖基类模板的成员。当然this
,依赖派生类模板中也不需要指针吗?
这不是必需的。有些人this
到处使用。
我相信这只是编写此代码的人的一种风格。有些人更喜欢将this->
与该类中的类相关的任何内容放在前面。如果您正在做一些有趣的事情,例如:
void foo( int a )
{
this->a = a;
}
或者,如果您只是认为这会增加可读性。但是,如果使用过多,就会变得一团糟:
this->a = this->b * this->c - this->foo( this->d, this->bar() );
在依赖派生类中不需要
在什么?
没有“依赖派生类”。派生类就是派生类。
派生类模板
它是一个类模板,但它被解析为一个类。
这样想:
它不是类模板,只是一个类(一种类型)。一个类模板专业化,但仍然是一个类,就像一个普通类。
或者这样:
派生类模板使用“神奇的惰性类型”参数进行实例化。这个惰性类型参数暂停任何依赖它的表达式的编译。