gpt4 book ai didi

c++ - 正确的头文件语法

转载 作者:行者123 更新时间:2023-11-28 08:12:24 26 4
gpt4 key购买 nike

我想了解从父类继承方法时何时需要在头文件中声明函数。

例如,假设我有以下类(class):

class parent{
public:
virtual void foo()= 0;
}

假设我有一个继承自父类的子类,我是否还必须在子类的头文件中声明 foo,或者我是否可以简单地在子类的源文件中定义方法?

以下声明是否不正确?

头文件:

class child : public parent{
}

类文件:

child::foo(){
// do something
}

最佳答案

基类的非虚方法在子类中继承,所以你不需要在子类中再次定义或声明它们,在派生类对象上调用的非虚方法将简单地调用基类中定义的方法(提供的访问说明符规则允许您)

如果您在派生类中再次从基类声明一个方法,那么它会在派生类中声明一个新方法,该方法隐藏所有具有相同名称的基类方法。这称为函数隐藏

好读:

What's the meaning of, Warning: Derived::f(char) hides Base::f(double)?

如果是虚方法,你不需要在子类中再次声明基类方法,你只需要提供一个定义。这称为函数重写

关于c++ - 正确的头文件语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8682368/

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