struct CLICKABLE
{
int x;
int y;
BITMAP* alt;
BITMAP* bitmap;
CLICKABLE()
{
alt=0;
}
};
CLICKABLE input={1,2,0,0};
这段代码给我以下错误:
无法从大括号括起来的初始值设定项列表进行转换
有人可以解释一下为什么编译器给我这个错误,以及如何修复它吗?我还在学习语言。
您的类有一个构造函数,因此它不是聚合,这意味着您不能使用聚合初始化。您可以添加一个采用正确数量和类型的参数的构造函数:
struct CLICKABLE
{
int x;
int y;
BITMAP* alt;
BITMAP* bitmap;
CLICKABLE(int x, int y, BITMAP* alt, BITMAP* bitmap)
: x(x), y(y), alt(alt), bitmap(bitmap) { ... }
CLICKABLE() : x(), y(), alt(), bitmap() {}
};
或者,您可以删除用户声明的构造函数,并使用聚合初始化:
CLICKABLE a = {}; // all members are zero-initialized
CLICKABLE b = {1,2,0,0};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)