通过构造函数调用中的命名参数分配类变量 C++.
Assigning class variables via named parameters in constructor call in C++
我来自C#背景。在那里我可以做这样的事情:
Callback callback = new Callback
{
src = src,
callbackPtr = callbackPtr
};
假设只有一个空的构造函数:
Callback(){}
这两个变量都是公共的。
C++中有类似的东西,还是我必须在这里创建参数化构造函数?
如果Callback
是普通旧数据(POD)类型,则可以执行以下操作:
Callback callback = {src, callbackPtr};
它使用结构初始化语法。它假定src
和callbackPtr
在类定义中按该顺序列出。
这适用于 C++03 和 C++11。在 C++11 中,非 POD 类可以通过定义采用std::initializer_list
的构造函数来使用此语法。
你可以做:
Callback* callback = new Callback
{
src,
callbackPtr
};
假设Callback
具有按该顺序具有相同数据类型的字段,并且 - 需要注意的是 - 这些字段必须是公共的。
相关文章:
- Clang-Format 不能正确分配函数参数
- 为什么不接受具有默认分配参数的函数作为 0-arg 生成器?
- 将共享指针传递给函数参数 - 将其分配给局部变量的正确方法是什么
- 为模板参数类型中的新对象分配内存
- 将指针作为参数分配给类变量,然后使用它抛出读取访问违规
- gtest-将模拟函数参数分配()
- 使用模板类的任意数量的参数分配
- 为作为双指针传递的参数分配内存
- C++ 将字符串参数分配给字符串
- 使用 ** 或 *& 为函数中的参数分配内存
- 如何在C++中从命令行参数分配成员变量
- 通过参数分配指针的值
- 通过构造函数调用中的命名参数分配类变量 C++.
- 将构造函数的参数分配给向量变量
- 为构造函数类中给定的参数分配内存
- 将引用参数分配给局部变量
- 这些参数分配在哪里
- 为什么类成员函数会销毁为指针参数分配的内存
- 根据模板参数分配模板类的静态常量浮点成员
- C++ 使用外部参数分配具有'compound names'变量