在c ++中由构造函数初始化

时间:2015-10-02 15:10:59

标签: c++

我对构造函数有疑问, 为什么以下代码正常工作:

#include <iostream>
using namespace std;
class mycl
{
private:
    int a;
    //struct
    //{
        char b,c;
    //} ms;

public:
    mycl (int _a,char _b,char _c):a (_a), b (_b), c (_c){}

};

int main() {
    // your code goes here
    mycl slc (15, 'a', 'f');
    return 0;
}

https://ideone.com/wBgM1b

但是这个

中存在编译错误

https://ideone.com/Yqxvzk

是否可以通过这种方式初始化复杂类型的成员?

P.S。 感谢翻译和回答。 抱歉错误的语言

1 个答案:

答案 0 :(得分:1)

你想:

mycl(int _a, char _b, char _c) : a(_a), ms{_b, _c} {}
//                                      ^^^^^^^^^^