cpp中的类变量初始化

时间:2012-10-16 09:27:12

标签: android c++

我有一个这样的课程,

class CLv
{
public:
    BOOL operator == (const CLv& lv) const
    {
        return _value == lv._value && _fStart == lv._fStart;
    }
    BOOL operator != (const CLv& lv) const
    {
        return _value != lv._value || _fStart != lv._fStart;
    }
    BYTE    _value;             
    BYTE    _fStart :1;         
};

那么,下面的代码段是什么意思?

CLv        lvEnd = {0,0};

1 个答案:

答案 0 :(得分:2)

这意味着lvEnd类型的变量CLv初始化为其成员00的{​​{1}}和_value

您的课程是聚合:

8.5.1聚合[dcl.init.aggr]

  

1)聚合是一个数组或类(第9条),没有用户提供的构造函数(12.1),没有支撑或平衡初始化器   对于非静态数据成员(9.2),没有私有或受保护的非静态数据成员(第11条),   没有基类(第10条),也没有虚函数(10.3)。

可以列表初始化:

8.5.4列表初始化[dcl.init.list]

  

1)列表初始化是从braced-init-list初始化对象或引用。这样的初始化程序是   称为初始化列表,列表中逗号分隔的初始化子句称为元素   初始化列表。 [...]