括号括起的初始化程序列表中的简短C ++类构造函数

以下核心部分工作正常:

class A {
public:
    int a;
    int b;
};

A obj{ 1,2 };

但是,如果要显式添加默认构造函数:A(){},则必须为括号括起来的初始化程序列表添加另一个,例如:

A(int a,int b):a(a),b(b) {}.

是否有一个较短的形式,例如:

A(const A& ab) { *this = ab } ???

上面的那个不起作用。

johnethan 回答:括号括起的初始化程序列表中的简短C ++类构造函数

A(int a,int b):a(a),b(b) {}.
     

是否有较短的表格

不。除了一些空格以外,此构造函数尽可能短。

,

不幸的是。

创建默认构造函数时,您无法使用汇总初始化来初始化类。

要想重新获得使用该声明语法的能力,您必须创建一个采用所有必需参数的构造函数……并且没有比编写的方法更短的方法了。

本文链接:https://www.f2er.com/2899133.html

大家都在问