我来自 C# 背景。在那里我可以做这样的事情:
Callback callback = new Callback
{
src = src,
callbackPtr = callbackPtr
};
假设只有一个空的构造函数:
Callback(){}
并且两个变量都是公开的。
在 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
具有按该顺序具有相同数据类型的字段,并且 - 大警告 - 这些字段必须是公共的。