请解释如何使用成员初始化列表。 我在一个.h文件和一个.cpp文件中声明了一个类,就像这样: class Example { private: int m_top; const int m_size; /* ... */ public: Example(int...
我想了解在使用一个形式而非另一个形式时有什么区别(如果有的话)。 代码 1(直接在变量上初始化):#include <iostream> using namespace std; class Test { public: Test() { cout&...
我想我无法理解为什么这不起作用。我一直以为可以在构造函数中使用'this'指针,但我从未知道不能在初始化列表中使用'this'。#include <iostream> class A { public: int a; int b; ...
在C++中是否可以将引用成员初始化为NULL? 我想尝试像这样做:class BigClass { private: Object m_inner; public: const Object& ReadOnly; BigClass() : ReadOnly(NU...
这个会导致未定义的行为吗?特别是在初始化列表中递增的部分,它将如何进行评估。 class Wrinkle { public: Wrinkle(int i) : a(++i), b(++i), x(++i) {} private: int a; int x; i...
这种行为是否定义良好?class Foo { int A, B; public: Foo(int Bar): B(Bar), A(B + 123) { } }; int main() { Foo MyFoo(0); return 0...
我对类成员变量的初始化有些困惑。 假设在我的 .h 文件中是这样的: class Test { int int_var_1; float float_var_2; public: Test(); } 我的 .cpp 文件会是这样的: Test::Test() : i...
因此,C++标准要求类成员按照在类中声明的顺序进行初始化,而不是任何构造函数初始化列表中提到的顺序。然而,这并不意味着对这些初始化参数进行评估的顺序。我正在使用一个经常传递序列化对象引用的系统,并想知道是否可以确保从该对象读取位的顺序正确,而与将这些位写入对象字段的顺序无关。struct Fo...
假设我有:// MyClass.h class MyClass { public: MyClass(); private: Something *something_; } // MyClass.cpp MyClass::MyClass() { somethin...
考虑下面这个类: class MyReferenceClass { public: MyReferenceClass(); const double ImportantConstant1; const double ImportantConstant2; co...