gpt4 book ai didi

c++,在子类中,没有对象如何访问父类的方法?

转载 作者:行者123 更新时间:2023-11-28 04:30:39 24 4
gpt4 key购买 nike

我认为只有静态方法可以做下面的事情,但它可以工作。谁能告诉我它是如何工作的?这东西背后的原理是什么。

#include <iostream>
using namespace std;

class Parent {
protected:
unsigned char* buf;
unsigned int bufLenght;

public:
void Setup()
{
buf = nullptr;
bufLenght = 0;
cout << "in Parent class Setup()" << endl;
}
virtual void TearDown()
{
delete[] buf;
}
};

class Child : public Parent{
public:
virtual void Setup()
{
Parent::Setup(); // access Parent method without a parent's object?
cout << "in Child class Setup()" << endl;
}
};

int main(int argc, char const *argv[])
{
Child co;
co.Setup();

return 0;
}

运行这段代码,结果是:

in Parent class Setup()

in Child class Setup()

我在这里找到答案: How to call a parent class function from derived class function?

而在thinking in c++中,我也发现了同样的描述:然而,当你重新定义一个函数时,你可能仍然想调用基类版本。如果在 set( ) 内部,您只需调用 set( )你会得到函数的本地版本——一个递归函数称呼。要调用基类版本,您必须显式命名使用范围解析运算符的基类。

最佳答案

每个 Child 对象都建立在 Parent 对象之上。只要你有一个Child,你就有一个Parent

关于c++,在子类中,没有对象如何访问父类的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53056002/

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