gpt4 book ai didi

c++ - 构造函数中成员初始值设定项列表的用途是什么?

转载 作者:行者123 更新时间:2023-11-28 00:14:35 25 4
gpt4 key购买 nike

我试图理解运算符重载的概念,但无法理解该程序中成员初始化列表的使用。它们的真正用途是什么,没有它们我可以重写这个程序吗?

#include <iostream>
using namespace std;
class Complex
{
private:
float real;
float imag;
public:
Complex(): real(0), imag(0){ }
void input()
{
cout<<"Enter real and imaginary parts respectively: ";
cin>>real;
cin>>imag;
}
Complex operator - (Complex c2) /* Operator Function */
{
Complex temp;
temp.real=real-c2.real;
temp.imag=imag-c2.imag;
return temp;
}
void output()
{
if(imag<0)
cout<<"Output Complex number: "<<real<<imag<<"i";
else
cout<<"Output Complex number: "<<real<<"+"<<imag<<"i";
}
};
int main()
{
Complex c1, c2, result;
cout<<"Enter first complex number:\n";
c1.input();
cout<<"Enter second complex number:\n";
c2.input();
result=c1-c2;
result.output();
return 0;

最佳答案

我认为存在某种混淆。你不是在谈论 std::initialize_list而是member initializer list .

是的,你可以在不使用它的情况下编写你的构造函数:

Complex(): real(0), imag(0){ }

变成:

Complex(): { real=0; image=0; }

但是我不推荐它。参见 here why .

关于c++ - 构造函数中成员初始值设定项列表的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31183072/

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