MST

星途 面试题库

面试题:C++模板类派生新模板类的基础实现

请编写一个简单的C++模板类`BaseTemplate`,包含一个模板类型的成员变量和一个打印该成员变量的成员函数。然后从`BaseTemplate`派生一个新的模板类`DerivedTemplate`,新增一个模板类型的成员函数,该函数用于返回两个模板类型参数相加的结果。
27.7万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试
#include <iostream>

// 定义BaseTemplate模板类
template <typename T>
class BaseTemplate {
protected:
    T data;
public:
    BaseTemplate(T value) : data(value) {}
    void printData() {
        std::cout << "Data: " << data << std::endl;
    }
};

// 定义DerivedTemplate模板类,继承自BaseTemplate
template <typename T>
class DerivedTemplate : public BaseTemplate<T> {
public:
    DerivedTemplate(T value) : BaseTemplate<T>(value) {}
    T add(T a, T b) {
        return a + b;
    }
};

你可以这样使用这个类:

int main() {
    DerivedTemplate<int> dt(5);
    dt.printData();
    std::cout << "Sum: " << dt.add(3, 4) << std::endl;
    return 0;
}