设为首页 加入收藏

TOP

集合初始化需要注意的一个问题
2014-11-23 23:55:20 来源: 作者: 【 】 浏览:14
Tags:集合 初始 需要 注意 一个 问题

集合就是多个事物聚集在一起的总体,集合包括数组、结构体、类

对于内部类型数组,我们可以这样定义

int a[5] = {1,2,3,4,5};

int b[5] = {0};

int c[] = {1,2,3,4,5};

对于一个结构体,我们也可以使用{}初始方式,如下

struct X

{

int i;

float f;

};

X x1 = {1,1.1};

X x2[3] = {{1,1.1},{2,2.2}}//第三个对象会初始化为0

但如果我们的类中有私有成员,或者所有的成员变量都是公有成员但存在有构造函数,我们就不能简单的使用{}初始化方法了,所有的初始化工作必须通过构造函数完成

#include

using namespace std;

class X

{

public:

int i;

float f;

X(){ cout << "默认构造函数" << endl; }

X(int e, float q):i(e), f(q) { cout << "构造函数" << endl; }

};

int main()

{

//X a = {0,0}; //编译出错,因为需要调用构造函数才能初始化

X b[2]; //使用默认构造函数进行初始化

X c[3] = {X(1,1.1), X(2,2.2)}; //使用一般构造函数进行初始化

return 1;

}

运行结果:

默认构造函数

默认构造函数

构造函数

构造函数

默认构造函数

通过辨识类和结构体的初始化方式的不同,可以认为类并不是一个严格意义上的集合

作者 yucan1001

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇逆序数及其求法 下一篇程序自动生成迷宫

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: