4.1.3 何为聚合(aggregate)?

来源:互联网 发布:服装设计用的软件 编辑:程序博客网 时间:2024/04/30 00:54

我们往往可以使用初始值列表来初始化一个数组或结构对象:

  1. int size[] = {100, 200};    //ok  
  2. POINT pt = {100, 200};      //ok 

但是,C++语法规定:不能使用初始值列表来初始化"非聚合(non-aggregate)"的对象。那么,什么才算是"聚合"呢?C++认为聚合包括满足如下条件的数组、类及结构:

不包含任何构造函数。

不包含任何私有/保护成员。

不包含任何基类。

不包含任何虚函数。

因此,4.1.1小节"struct与class"中定义的POINT结构和Point类,都是聚合:

  1. POINT pt1 = {100, 200};     //ok  
  2. Point pt2 = {100, 200};     //ok 

由"{"和"}"构成的值为初始值列表(initializers),当初始值的数目少于对象成员的数目时,系统会采取0作为初始值。如下:

  1. int size[2] = {100};    //{100, 0}  
  2. POINT pt1 = {100};      //{100, 0} 

===========================================

以上摘自《把脉VC++》第4.1.3小节的内容 ,如果你想与我交流,请点击如下链接加我为好友:http://student.csdn.net/invite.php?u=113292&c=8913f87cffe7d533

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 手被烫伤留疤怎么办 cbg被下单不能改价怎么办 浪琴手表日期中午跳怎么办 社保一体卡丢失了怎么办 京东付款七天不发货怎么办 电动车电机锁钥匙丢了怎么办 电瓶车锁钥匙丢了怎么办 苹果平板ld忘了怎么办 平板版本太低6.0怎么办 ios平板版本太低怎么办 微信公众号重名怎么办 发票规格型号填错了怎么办 鲁大师检测硬盘有问题怎么办 英文成绩单翻译错了怎么办 川航订机票名字写错了怎么办 亚航电子登机牌没有保存怎么办 cfa考试准考证名字有错怎么办 火车票护照号错了怎么办 国际机票名字错一个字怎么办 国际机票名字拼音错了怎么办 订机票名字写错了怎么办 亚航机票护照号写错怎么办 打发过了的奶油怎么办? 孩子生了没人带怎么办 办理退休审核未通过怎么办 整天沉迷全民k歌怎么办 吃鸡账号被误封了怎么办 手机换号了银行卡怎么办 评副高没有病房论文怎么办 收件人姓名写错了怎么办 汇款姓名写错了怎么办 在菲律宾旅游签证过期怎么办 微博转发被限制怎么办 百香果蜂蜜沉在下面怎么办 领导要潜我老婆怎么办 被领导潜了该怎么办 实习期单位领导开除我我该怎么办 泡泡袖显手臂肥怎么办 客人想吃霸王餐怎么办 在四楼上课时发生地震怎么办 学生在上课时发生地震怎么办