gpt4 book ai didi

c++ - 另一个类中的参数化对象初始化

转载 作者:行者123 更新时间:2023-11-30 05:29:25 24 4
gpt4 key购买 nike

不确定我是否走在正确的轨道上。我需要在另一个类中初始化一个参数化对象,但我不确定该怎么做。为了明确我的观点,代码片段是

class base
{
private:
bool data_present;
public:
/*base()
{
cout<<" base :default constructor called"<<endl;
data_present = false;
}*/
base(bool present )
{
data_present = present;
}

bool present()
{
return data_present;
}
};

class derived :public base
{
private:
int _value;
public:
/*derived()
{
cout<<" derived :default constructor called"<<endl;

}*/
derived(int value):base(1)
{
_value = value;
}
};

class test
{
public:
test(int data )
{
cout<<"test: parameter's constructor "<<endl;
}
derived return_data()
{
return d;
}

private:
derived d;
};

int main()
{
test t(100);
return 0;
}

我的目的是在测试构造函数中初始化派生的参数化构造函数,以便在 _value 中填充值 100。任何人都可以帮我解决这个问题。

最佳答案

你可以使用 member initialize list使用指定的构造函数初始化非静态成员变量,就像您在 derived 类的基础子对象的构造函数中所做的一样。

class test
{
public:
test(int data ) : d(data)
~~~~~~~~~
{
cout<<"test: parameter's constructor "<<endl;
}
derived return_data()
{
return d;
}

private:
derived d;
};

关于c++ - 另一个类中的参数化对象初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36402154/

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