gpt4 book ai didi

C++(类和指针)

转载 作者:行者123 更新时间:2023-11-30 04:56:32 26 4
gpt4 key购买 nike

#include <iostream>

class Base {
virtual void method() {std::cout << "from Base" << std::endl;}
public:
virtual ~Base() {method();}
void baseMethod() {method();}
};

class A : public Base {
void method() {std::cout << "from A" << std::endl;}
public:
~A() {method();}
};

int main(void) {
Base* base = new A;
base->baseMethod();
delete base;
return 0;
}

我不明白为什么这段代码的输出是:来自A来自A从基地

从技术上讲,它应该只打印“来自 A”。

最佳答案

它叫做 Upcast ,请查看链接中的示例以获取更多信息。第一个“来自 A”发生在您执行时:

 base->baseMethod();

调用A的析构函数时打印第二个“from A”,调用Base的析构函数时打印“from Base”。

关于C++(类和指针),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52449635/

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