2

我有这样的课,

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};
4

1 回答 1

2

这意味着lvEndtype的变量使用和的值对其成员和进行CLv初始化。00_value_fStart

您的课程是一个聚合:

8.5.1 聚合 [dcl.init.aggr]

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

并且可以列表初始化:

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

1) 列表初始化是从花括号初始化列表初始化对象或引用。这样的初始化器称为初始化器列表,列表中以逗号分隔的初始化器子句称为初始化器列表的元素。[...]

于 2012-10-16T09:28:26.710 回答