5、C++模板编程中的几个关键问题解析

C++模板编程中的几个关键问题解析

1. .template 构造的使用

在某些模板代码中,会出现 .template 这样奇怪的构造。若不额外使用 template ,编译器可能无法识别后续的小于号 < 并非“小于”运算符,而是模板参数列表的开始。不过,这一问题仅在句点前的构造依赖于模板参数时才会出现。例如,若某个参数依赖于模板参数 N ,就可能遇到此问题。

总结来说, .template 表示法(以及类似的 ->template 表示法)仅应在模板内部使用,且只有当它们跟在依赖于模板参数的内容之后时才使用。

2. this-> 的使用

对于带有基类的类模板,直接使用名称 x 并不总是等同于 this->x ,即便成员 x 是继承而来的。以下是一个示例:

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

template <typename T>
class Derived : Base<T> {
public:
    void foo() {
        bar(); // calls external bar()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值