问题标签 [ctor-initializer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - C++ 构造函数名称后面的冒号有什么作用?
冒号运算符 (":") 在这个构造函数中做了什么?是否相当于MyClass(m_classID = -1, m_userdata = 0);
?
c++ - 如何在构造函数中初始化 const 字段?
想象一下,我有一个 C++ 类 Foo 和一个类 Bar,它必须使用一个传递 Foo 指针的构造函数来创建,并且该指针旨在在 Bar 实例生命周期中保持不可变。正确的做法是什么?
事实上,我以为我可以像下面的代码那样编写,但它不能编译..
欢迎任何建议。
c++ - 初始化器列表 *argument* 评估顺序
因此,C++ 标准要求类成员按照它们在类中声明的顺序进行初始化,而不是按照它们在任何构造函数的初始化列表中的顺序进行初始化。但是,这并不意味着评估这些初始化的参数的顺序。我正在使用一个经常传递对序列化对象的引用的系统,并且想知道我是否可以确保以正确的顺序从中读取位,而与这些位写入对象字段的顺序无关。
显然,在声明中重新排序像ints
and这样的东西doubles
并不是什么大不了的事,但有时需要动态分配的更大的对象和东西就可以了。
c++ - 构造函数中这个奇怪的冒号成员(“:”)语法是什么?
最近我看到了一个类似下面的例子:
这个奇怪的: bar(num)
意思是什么?它似乎以某种方式初始化了成员变量,但我以前从未见过这种语法。它看起来像一个函数/构造函数调用,但是对于int
? 对我来说没有意义。也许有人可以启发我。而且,顺便说一句,有没有像这样的其他深奥的语言特性,你在普通的 C++ 书中找不到?
c++ - 用成员初始化成员
这是我经常遇到的问题。以下示例说明了这一点:
的构造函数的实现C
看起来像这样:
由于未定义初始化顺序,m_ObjectA
可能在m_ObjectB
调用构造函数时未初始化,导致未定义行为。强制某种初始化顺序的一种方法是使成员指针并在构造函数主体中初始化它们,从而强制执行正确的顺序,但这很丑陋,有几个原因。有没有办法使用构造函数的初始化列表强制某个初始化顺序?如果没有,您有任何其他建议如何处理这个问题。
c++ - 构造函数中冒号后的变量
我仍在学习 C++ 并试图理解它。我正在查看一些代码并看到:
位于构造函数参数旁边的“x(X)、y(Y)、z(Z)”是什么意思?
c++ - 带有初始化列表的简单构造函数?
下面我包含了我的 h 文件,我的问题是编译器不喜欢我的简单异常类的构造函数和初始化列表。这也是说string is undeclared identifier
,即使我#include <string>
在 h 文件的顶部。你看到我做错了什么吗?为了进一步解释,这是我正在集成到 Windows 上的 wxWidgets GUI 应用程序中的域类之一。
谢谢!
时间.h
c++ - 在构造函数旁边声明的属性
我对 C/C++ 非常陌生,不确定该方法被称为什么。但这就是为什么我在这里试图找到答案。让我给你看一个例子
其中 valueOne 和 valueTwo 是在主体之外分配值的类属性,这是调用什么方法以及为什么要这样做。为什么不这样做
如果有人可以帮助我,那就太好了。
c++ - 从构造函数初始化程序抛出异常
从构造函数初始化程序抛出异常的最佳方法是什么?
例如:
我想也许可以做包装,例如t0(throw_if_invalid(n))
。
处理此类案件的做法是什么?
c++ - 只有静态和常量变量可以分配给一个类?
我正在学习 C++。只是好奇,只能从类声明中为静态和常量变量赋值吗?这主要是为什么当您为普通成员分配值时,他们有一种特殊的方式来做到这一点