gpt4 book ai didi

c++ - term 不计算为采用 3 个参数的函数

转载 作者:行者123 更新时间:2023-11-27 23:01:09 24 4
gpt4 key购买 nike

struct Color {
int red;
int green;
int blue;
Color(int nred, int ngree, int nblue):red(nred),green(ngree),blue(nblue){
}
};

struct Cal {
int days;
Color color;
Cal(): days(), color(255,255,255){
}
};
int main() {
Cal go;
go.color(100,100,100);
return 0;
}

问题是什么?编译器是否认为 color 是函数而不是构造函数?如何解决这个问题?

最佳答案

是的,它认为 color 是一个函数而不是构造函数。

对象已经构造完成,来不及调用构造函数。

选项 1

Cal 添加一个可以获取颜色值并转发它们的构造函数:

struct Cal {
int days;
Color color;
Cal(): days(), color(255,255,255){
}
Cal(int nred, int ngree, int nblue): days(), color(nread,ngree,nblue){
}
};
int main() {
Cal go(100,100,100);
return 0;
}

选项 2

手动设置值:

int main() {
Cal go;
go.color.red = go.color.green = go.color.blue = 100;
return 0;
}

选项 3

从临时实例中分配 color 成员:

int main() {
Cal go;
go.color = Color(100, 100, 100);
return 0;
}

关于c++ - term 不计算为采用 3 个参数的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27557433/

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