31得票6回答
成员初始化列表是构造函数的声明部分还是定义部分?

请解释如何使用成员初始化列表。 我在一个.h文件和一个.cpp文件中声明了一个类,就像这样: class Example { private: int m_top; const int m_size; /* ... */ public: Example(int...

28得票5回答
非静态数据成员的成员初始化列表和默认成员初始化有什么区别?

我想了解在使用一个形式而非另一个形式时有什么区别(如果有的话)。 代码 1(直接在变量上初始化):#include <iostream> using namespace std; class Test { public: Test() { cout&...

27得票2回答
构造函数初始化列表中的“this”指针

我想我无法理解为什么这不起作用。我一直以为可以在构造函数中使用'this'指针,但我从未知道不能在初始化列表中使用'this'。#include <iostream> class A { public: int a; int b; ...

25得票5回答
在C++中将成员的引用初始化为NULL

在C++中是否可以将引用成员初始化为NULL? 我想尝试像这样做:class BigClass { private: Object m_inner; public: const Object& ReadOnly; BigClass() : ReadOnly(NU...

24得票2回答
在成员初始化列表中增加操作是否会产生未定义行为?

这个会导致未定义的行为吗?特别是在初始化列表中递增的部分,它将如何进行评估。 class Wrinkle { public: Wrinkle(int i) : a(++i), b(++i), x(++i) {} private: int a; int x; i...

20得票3回答
初始化列表中的依赖关系

这种行为是否定义良好?class Foo { int A, B; public: Foo(int Bar): B(Bar), A(B + 123) { } }; int main() { Foo MyFoo(0); return 0...

18得票2回答
C++:成员变量的初始化

我对类成员变量的初始化有些困惑。 假设在我的 .h 文件中是这样的: class Test { int int_var_1; float float_var_2; public: Test(); } 我的 .cpp 文件会是这样的: Test::Test() : i...

15得票1回答
初始化列表 *参数* 评估顺序

因此,C++标准要求类成员按照在类中声明的顺序进行初始化,而不是任何构造函数初始化列表中提到的顺序。然而,这并不意味着对这些初始化参数进行评估的顺序。我正在使用一个经常传递序列化对象引用的系统,并想知道是否可以确保从该对象读取位的顺序正确,而与将这些位写入对象字段的顺序无关。struct Fo...

12得票3回答
C++:我应该在构造函数体中将分配给指针成员的指针初始化为NULL吗?

假设我有:// MyClass.h class MyClass { public: MyClass(); private: Something *something_; } // MyClass.cpp MyClass::MyClass() { somethin...

12得票8回答
复杂的const字段初始化

考虑下面这个类: class MyReferenceClass { public: MyReferenceClass(); const double ImportantConstant1; const double ImportantConstant2; co...