C++ 初始化器列表不符合顺序
因此,我创建了一个名为C++ 初始化器列表不符合顺序,c++,initialization,initializer-list,C++,Initialization,Initializer List,因此,我创建了一个名为Dictionary的类,它继承自一个基IEnumerable,并包含一个类型为List的成员列表有一个常量unsigned int&成员,用于存储和公开其项目计数 这是字典的构造函数 Dictionary() : _list(), IEnumerable(_list.Count) { } 我将常量unsigned int&从“Initialized”列表传递到IEnumerable。问题是,IEnumerable的初始化器在\u list之前被调用(类型list的成员)
Dictionary
的类,它继承自一个基IEnumerable
,并包含一个类型为List
的成员<代码>列表有一个常量unsigned int&
成员,用于存储和公开其项目计数
这是字典
的构造函数
Dictionary() : _list(), IEnumerable(_list.Count)
{ }
我将常量unsigned int&
从“Initialized”列表传递到IEnumerable
。问题是,IEnumerable
的初始化器在\u list
之前被调用(类型list
的成员),因此我传入了一个无效引用
有没有办法强制在基类IEnumerable
之前初始化成员\u list
基类总是在直接成员之前初始化。(事实上,mem初始值设定项列表中基和成员的顺序不起任何作用-顺序始终由类定义确定。) 一种解决方法是将成员移动到另一个基类
struct HasList {
List _list;
// Might want custom constructors here.
};
class Dictionary
: private HasList,
public IEnumerable
{
// ...
(这是
private
继承为数不多的有用用法之一。)基类总是在直接成员之前初始化。(事实上,mem初始值设定项列表中基和成员的顺序不起任何作用-顺序始终由类定义确定。)
一种解决方法是将成员移动到另一个基类
struct HasList {
List _list;
// Might want custom constructors here.
};
class Dictionary
: private HasList,
public IEnumerable
{
// ...
(这是
private
继承的少数有用用法之一。)如何设置List
的Count
数据成员?它是一个引用,所以它必须引用某个东西。它在_list的构造函数中设置。但是那是在based之后调用的。如何设置列表
的计数
数据成员?它是一个引用,所以它必须引用某个东西。它在_list的构造函数中设置。但那是在棒球赛之后的事哦,我明白了。我喜欢!听起来很有创意。我想我会的:)太好了!再次感谢。它甚至不需要对现有代码进行任何重大更改:)哦,我明白了。我喜欢!听起来很有创意。我想我会的:)太好了!再次感谢。它甚至不需要对现有代码进行任何重大更改:)