C++中的构造函数委托
我们将在本文中了解构造函数委托是什么。当一个构造函数调用同一类的其他构造函数时,这就是构造函数委托。此功能出现在C++11版本中。
让我们看看以下程序,尝试分析这段代码中有哪些难点。
示例
#include <iostream>
using namespace std;
class MyClass {
int a, b, c;
public:
MyClass(){
a = b = c = 0;
}
MyClass(int c) {
// Initializing a and b are redundent, only c initialization is needed here
a = 0;
b = 0;
this->c = c;
}
void display(){
cout << "a : " << a << ", b : " << b << ", c : " << c;
}
};
main() {
MyClass my_obj(5);
my_obj.display();
}输出
a : 0, b : 0, c : 5
我们可以看到,此代码运行正常,但这段代码中有一些冗余代码。无参数的构造函数可以将a和b的值设置为1。因此,如果我们在第二个构造函数中使用第一个构造函数,这样会更加有效。因此,我们必须使用一个名为构造函数委托的方法。
示例
#include <iostream>
using namespace std;
class MyClass {
int a, b, c;
public:
MyClass(){
a = b = c = 0;
}
MyClass(int c) : MyClass(){ //using constructor delegation
this->c = c;
}
void display(){
cout << "a : " << a << ", b : " << b << ", c : " << c;
}
};
main() {
MyClass my_obj(5);
my_obj.display();
}输出
a : 0, b : 0, c : 5
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP