gpt4 book ai didi

C++ 构造函数采用成员初始值设定项

转载 作者:行者123 更新时间:2023-11-28 04:15:17 25 4
gpt4 key购买 nike

我想根据需要访问构造函数成员初始化。当程序初始化类对象时,将调用默认构造函数。所以同时,构造函数调用构造函数初始化我提到的。

class A {
public:
A();
void fun1();
void fun2();
};
A::A()
: fun1()
, fun2()
{
cout << " Hi" << endl;
}
void A::fun1()
{
cout << "Hello" << endl;
}
void A::fun2()
{
cout << "Bye" << endl;
}
int main()
{
A obj_a;
return 0;
}

预期结果:

Hi, Hello, Bye

错误信息

error: class ‘A’ does not have any field named ‘fun1’
A::A():fun1(), fun2() {

最佳答案

您正在调用初始化列表中的函数,您应该在那里初始化数据成员。编译器寻找名为 fun1 和 fun2 的数据成员,但找不到,因此您会被告知。你可以像下面这样尝试:

 class A { 
public:
A();
void fun1();
void fun2();
};
A::A() {
cout << " Hi" << endl;
fun1();
fun2();
}
void A::fun1() {
cout << "Hello" << endl;
}
void A::fun2() {
cout << "Bye" << endl;
}
int main() {
A obj_a;
return 0;
}

关于C++ 构造函数采用成员初始值设定项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56787842/

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