64,682
社区成员
发帖
与我相关
我的任务
分享
class A
{
public
A(int ca); //非默认构造函数
int a;
}
A::A(int ca)
{
a = ca;
}
class B
{
B()
~B()
A aa(10); //报错,非法语句
}
class A
{
public
A(int ca); //非默认构造函数
int a;
};
A::A(int ca)
{
a = ca;
}
class B
{
B() : aa(10) {}
~B();
A aa;
};
class A
{
public
A(int ca); //非默认构造函数
int a;
};
A::A(int ca)
{
a = ca;
}
class B
{
B();
~B();
A aa;
};
//可以 这么做
B():aa(10){}//初始化表初始化 基类子对象,或者成员变量
C++11标准 以及以后
类成员变量,可以在定义时候直接初始化。
class A
{
public
A(int ca); //非默认构造函数
int a;
};
A::A(int ca)
{
a = ca;
}
class B
{
B();
~B();
A aa{10}; //C++11,成员变量定义时初始化
};
B(){}
class A
{
public
A(int ca); //非默认构造函数
int a;
};
A::A(int ca)
{
a = ca;
}
class B
{
B();
~B();
A aa;
};
//可以 这么做
B():aa(10){}//初始化表初始化 基类子对象,或者成员变量
C++11标准 以及以后
类成员变量,可以在定义时候直接初始化。
class A
{
public
A(int ca); //非默认构造函数
int a;
};
A::A(int ca)
{
a = ca;
}
class B
{
B();
~B();
A aa{10}; //C++11,成员变量定义时初始化
};
B(){}
class A
{
public
[b] A(int ca); //非默认构造函数
int a;
}
A::A(int ca)
{
a = ca;
}
class B
{
B()
~B()
A aa{10}; //报错,非法语句,
//C++11 小括号改成大括号 (10 ) 变成 {10},
//换成等号应该也行,例如
//A aa=10,A aa=A(10)。
// 不支持这种语法 的编译器,只能 A aa;
//并且在构造函数的初始化表中,初始化成员变量.
}
//也可以 这么做
B():aa(10){}//初始化表初始化 基类子对象,或者成员变量
[/quote]没看懂您说的,麻烦再详细说下呗!非常感谢
class A
{
public
[b] A(int ca); //非默认构造函数
int a;
}
A::A(int ca)
{
a = ca;
}
class B
{
B()
~B()
A aa{10}; //报错,非法语句,
//C++11 小括号改成大括号 (10 ) 变成 {10},
//换成等号应该也行,例如
//A aa=10,A aa=A(10)。
// 不支持这种语法 的编译器,只能 A aa;
//并且在构造函数的初始化表中,初始化成员变量.
}
//也可以 这么做
B():aa(10){}//初始化表初始化 基类子对象,或者成员变量
[/quote]没看懂您说的,麻烦再详细说下呗!非常感谢
class A
{
public
[b] A(int ca); //非默认构造函数
int a;
}
A::A(int ca)
{
a = ca;
}
class B
{
B()
~B()
A aa{10}; //报错,非法语句,
//C++11 小括号改成大括号 (10 ) 变成 {10},
//换成等号应该也行,例如
//A aa=10,A aa=A(10)。
// 不支持这种语法 的编译器,只能 A aa;
//并且在构造函数的初始化表中,初始化成员变量.
}
//也可以 这么做
B():aa(10){}//初始化表初始化 基类子对象,或者成员变量