C++之 模板化基类 的名称处理

本文探讨了C++中继承模板基类时遇到的问题,特别是编译器对模板基类成员函数的处理。当派生类尝试调用模板基类的非虚函数时,编译器可能因找不到函数声明而报错。解决这个问题的方法包括使用`this`指针、`using`声明或明确作用域。在使用模板基类时,必须显式指明基类中的定义,因为编译器在模板实例化前无法预知基类的具体状态。
摘要由CSDN通过智能技术生成

在引入模板之后,我们面临一个新的问题,那就是如果继承自一个模板基类,是否跟继承一般的类有什么区别呢?

就是说,如果一个类继承自某个模板类,那么该类应该注意一些什么呢?其实,它与一般类的继承是很不一样的。


先举个简单的例子:


template
    
    
     
     
class Base
{
    public:
        void printBase() {cout << "call Base printBase() ..." << endl;}
};

template
     
     
      
      
class Derived : public Base
      
      
       
       
{
    public:
        void printDerived()
        {
            cout << "call Derived printDerived() ... " << endl;
            printBase();
        }
};

      
      
     
     
    
    

我们可以看到,在上述代码中,Derived类中的成员函数调用了Base类的成员函数,显然这是很合理的,因为PrintBase并

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值