一个类中,程序先执行完非函数成员后,在执行函数成员。(所以不存在构造函数为什么能提前知道类成员的问题了)
struct Person{
char *name ="itcast";
int age=20;
};
为什么这里的name和age不能像类成员变量那样直接初始化
这只是个变量类型,就像int,char,int [],里面只是告知了成员都是啥类型,必须定义变量才能初始化,初始化的是变量, 不是类型。
struct Person{
char *name;
int age;
};
struct Person Jack = {"Jack", 20};
Jack才是定义出来的变量,可以初始化
struct结构体只是一个模版,你都把模版赋值了
在c++11新标准中,允许在模板中初始化,相当于为默认构造函数给定了内置类型数据成员的初始值
(着重注意:不是定义,是给定!!)。
c++ primer(类)日记 c++ primer(类)日记只有从堆上分配成员变量时,才需要析构函数
网友评论