面试题答案
一键面试template <typename T>
class BaseTemplate {
// 假设BaseTemplate有一些成员
int baseMember;
public:
BaseTemplate() : baseMember(0) {}
};
template <typename T>
class Derived : public BaseTemplate<T> {
public:
void newFunction();
};
template <typename T>
void Derived<T>::newFunction() {
// 这里可以写新函数的具体实现
}
在这种派生关系下(public
继承):
BaseTemplate
中的public
成员在Derived
中仍然是public
的,可以在Derived
类的外部通过Derived
对象访问。BaseTemplate
中的protected
成员在Derived
中变成protected
的,只能在Derived
类及其派生类的成员函数中访问。BaseTemplate
中的private
成员在Derived
中是不可访问的,即使在Derived
类的成员函数中也无法直接访问。