0

我来自 C# 背景。在那里我可以做这样的事情:

Callback callback = new Callback
    {
        src = src,
        callbackPtr = callbackPtr
    };

假设只有一个空的构造函数:

Callback(){}

并且两个变量都是公开的。

在 C++ 中有类似的东西还是我必须在这里创建参数化构造函数?

4

2 回答 2

4

如果Callback是普通旧数据 (POD) 类型,您可以这样做:

Callback callback = {src, callbackPtr};

它使用结构初始化语法。它假定srccallbackPtr在类定义中按该顺序列出。

这适用于 C++03 和 C++11。在 C++11 中,非 POD 类可以通过定义一个采用std::initializer_list.

于 2013-09-06T22:13:32.610 回答
0

你可以做:

Callback* callback = new Callback
    {
        src,
        callbackPtr
    };

假设Callback具有按该顺序具有相同数据类型的字段,并且 - 大警告 - 这些字段必须是公共的。

于 2013-09-06T22:04:28.937 回答