c++类构造函数语法
C++ class constructors syntax
当一个类有多个构造函数时,是否有办法在c++中使用类似c#的构造函数语法,例如:
class complex
{
public:
double re, im;
complex(double r, double i)
{
re = r;
im = i;
}
complex():this(0.0d,0.0d)
{
}
};
这个特殊的例子似乎不起作用,但是还有吗?
在c++ 11中可以这样做:
class complex {
public:
double re, im;
complex(double r, double i)
: re(r), im(i) {
}
complex()
: complex(0.0d, 0.0d) {
}
};
如果由于某些原因你不能使用c++ 11,而你需要一个如此简单的情况,你可以使用默认参数:
class complex {
public:
double re, im;
complex(double r = 0.0, double i = 0.0)
: re(r), im(i) {
}
};
当然有一个缺点:你可以(错误地)只提供一些参数,比如:complex a(1.0)
。
从c++ 11开始有构造函数委托特性。
你可以这样做:
class A{
public:
A(): A(0){ cout << "In A()" << endl;}
A(int i): A(i, 0){cout << "In A(int i)" << endl;}
A(int i, int j){
num1=i;
num2=j;
average=(num1+num2)/2;
cout << "In A(int i, int j)" << endl;}
private:
int num1;
int num2;
int average;
};
int main(){
class A a;
return 0;
}
相关文章:
- 使用基类指针调用基类的值构造函数的语法是什么?
- 将值传递给构造函数 c++ 的差异语法
- 没有数据成员和大括号语法的类的默认复制构造函数
- 此语法中的构造函数转换错误
- 返回语句中的构造函数语法
- 复制构造函数语法错误:myclass 没有成员 mymember
- 在 c++ 中移动 2d 数组的构造函数(语法逻辑不清楚):
- C++类构造函数语法的解释
- C++ 使用指针移动构造函数(*&&&语法)
- C++构造函数中的语法错误 - arugment 是对另一个类中的对象的引用
- 复制构造函数语法并显示构造函数的值
- 了解构造函数初始值设定项列表中带有大括号的奇怪语法
- 什么是正确的语法,用于在Visual Studio C 中贬低单个构造函数
- 带有分配过载语法的复制构造函数
- 构造函数主体中的简单指针语法出现问题
- 带有const成员的构造函数的语法
- 在私有类语法中复制构造函数
- 在构造函数成员初始化之前调用成员函数的语法
- C++ - 在构造函数中使用引用时出现语法错误
- 在语法构造函数中评估的语义操作(或不评估?