可能重复:
declaring a const instance of a class
Why does C++ require a user-provided default constructor to default-construct a const object?
我的节目是这样的:
class c
{
};
int main()
{
const c a;
return 0;
}
当我使用g ++编译它时,它会提示:
main.cpp:10:7: note: ‘const class c’ has no user-provided default constructor
为什么,这只是一个空类而且什么都不做,为什么我必须提供一个用户提供的构造函数。
答案 0 :(得分:1)
因为语言规则是这样说的。
常量必须在定义中设置其值,因为以后无法为其赋值。如果没有显式提供值,则类型必须具有默认构造函数。
答案 1 :(得分:1)
你 。它只是一个注释,甚至不是警告。理由是,班级不能做任何有用的事情,这很少是有意的。海湾合作委员会正在检查你是否忽视了某些事情。