C++类模板的继承

如果 class templates 拥有 base classes,那么其内出现的成员名称 x并非总是等价于 this->x,即
使 x系继承而来。
 

template <typename T>
class Base {
public:
	void exit();
};

template <typename T>
void Base<T>::exit()
{
	cout << "Baseexit" << endl;
}


template <typename T>
class Derived : public Base<T> {
public:
	void foo() 
	{
		Base<T>::exit();//直接写exit()会报错
	}
};

使用与 template 相关的符号时,建议总是以this-> 或Base<T>:: 进行修饰。为避免任何不确定性,可考虑在templates 内对
所有成员存取动作(member accesses)进行以上修饰,private,protect, public。
 

发布了193 篇原创文章 · 获赞 22 · 访问量 3万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览