C++问题求解,在类中为什么不能给数据成员初始化值:
#include<iostream>#include<fstream>usingnamespacestd;classA{public:inta=10;//为什么这样编辑就...
#include<iostream>
#include<fstream>
using namespace std;
class A
{
public:
int a=10;//为什么这样编辑就会出错,而把它改成static const int a=10这样就可以了呢 这又是为什么噢?
}; 展开
#include<fstream>
using namespace std;
class A
{
public:
int a=10;//为什么这样编辑就会出错,而把它改成static const int a=10这样就可以了呢 这又是为什么噢?
}; 展开
展开全部
之前是因为:类的定义实际上相当于是类型的声明,并没有分配存储空间,初始化后的数据没有地方存放,类实例化以后才会有实体存储地址以及空间。
不过在C++11标准允许在类定义时初始化数据成员了,像我现在用Visual studio2017开发c++程序,可以在类体中初始化非静态数据成员。
不过在C++11标准允许在类定义时初始化数据成员了,像我现在用Visual studio2017开发c++程序,可以在类体中初始化非静态数据成员。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为类不能分配内存空间,只能声明有哪些变量,初始化要在构造函数中完成
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-09-13
展开全部
类中给成员初始化必须用初始化列表
class A
{
int a;
public:
A ():a(10){}
};
class A
{
int a;
public:
A ():a(10){}
};
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C++11,已经可以实现类内初始化了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询