gpt4 book ai didi

c++ - 类方法在继承中不能正确调用

转载 作者:行者123 更新时间:2023-11-28 00:32:50 24 4
gpt4 key购买 nike

我有一个包含两个函数的基类:第一个调用第二个:

template <class T, size_t s> class BaseClass {
/*....*/
void init() {
/*Do general initialization.*/
specificInitialization();
}

void specificInitialization() {
/*Do BaseClass specific initialization.*/
}


};

在我的派生类中,我想做以下事情:

template <class T, size_t s> class DerivedClass : public BaseClass<T,s> {
/*....*/
void specificInitialization() {
/*Do DerivedClass specific initialization.*/
}
};

但是,在实现 DerivedClass 时,将调用 BaseClass 特定的初始化。如果我也在 DerivedClass 中编写 init() 函数,一切都会按预期进行。

这是什么原因呢?我正在继承,但无论如何我都必须重写公共(public)代码,我不太喜欢那样:(

谢谢!

最佳答案

您可能还没有在基类中声明函数 virtual;只能覆盖虚函数:

virtual void specificInitialization();
^^^^^^^

当然,您发布的代码不包含virtual;但它也缺少类键和返回值,因此不能成为您正在编译和运行的代码。我只能猜测您的真实代码是什么样的。

关于c++ - 类方法在继承中不能正确调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22147093/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com