gpt4 book ai didi

c++ - 为什么我得到输出 'b(1) dc dvfunc' ?

转载 作者:行者123 更新时间:2023-11-28 03:22:32 27 4
gpt4 key购买 nike

我在这里的预期输出是“bc bvfunc b(1) dc dvfunc”,但我得到的输出是“b(1) dc dvfunc”,为什么会这样?有人可以帮帮我吗?感谢您的宝贵时间!

#include<iostream>

using namespace std;

class b {
public:
b() {
cout<<" bc ";
b::vfunc();
}
virtual void vfunc(){ cout<<" bvfunc "; }
b(int i){ cout<<" b(1) "; }
};

class d : public b {
public:
d(): b(1) {
cout<<" dc ";
d::vfunc();
}
void vfunc(){ cout<<" dvfunc"; }
};

main()
{
d d;
}

最佳答案

为了得到你想要的输出

d(){b(1);      //move b(1) from initializer list and put it in a constructor.  
cout<<" dc ";

仅供引用 initializer list 用于在构造函数调用默认值之前初始化类的成员。构造函数可以覆盖这些值。

关于c++ - 为什么我得到输出 'b(1) dc dvfunc' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15050522/

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