C ++中的构造函数
构造函数是类的函数,在创建类的新对象时将执行它们。构造函数与类具有相同的名称,没有返回类型,甚至没有void。它们主要用于为类变量提供初始值。
构造函数的两种主要类型是默认构造函数和参数化构造函数。有关这些的详细信息如下。
默认构造函数
默认构造函数不接受任何参数。如果程序员未明确提供默认构造函数,则编译器将提供隐式默认构造函数。在这种情况下,变量的默认值为0。
演示默认构造函数的程序如下所示。
示例
#include <iostream>
using namespace std;
class A {
private:
int num1, num2 ;
public:
A() {
num1 = 5;
num2 = 7;
}
void display() {
cout<<"num1 = "<< num1 <<endl;
cout<<"num2 = "<< num2 <<endl;
}
};
int main() {
A obj;
obj.display();
return 0;
}输出结果
num1 = 5 num2 = 7
在上面的程序中,类A包含一个默认的构造函数,该构造函数将num1和num2初始化为5和7。它还包含一个display()输出num1和num2值的函数。给出的代码片段如下。
class A {
private:
int num1, num2 ;
public:
A() {
num1 = 5;
num2 = 7;
}
void display() {
cout<<"num1 = "<< num1 <<endl;
cout<<"num2 = "<< num2 <<endl;
}
};该函数main()包含类类型为A的对象的对象定义。然后display()调用该函数。如下所示。
A obj; obj.display();
参数化构造函数
参数化构造函数可以在创建对象时使用参数来初始化对象。将参数添加到参数化的构造函数中,就像将它们添加到普通函数中一样。参数化的构造函数可以隐式或显式调用。
演示参数化构造函数的程序如下所示。
示例
#include <iostream>
using namespace std;
class A {
private:
int num1, num2 ;
public:
A(int n1, int n2) {
num1 = n1;
num2 = n2;
}
void display() {
cout<<"num1 = "<< num1 <<endl;
cout<<"num2 = "<< num2 <<endl;
}
};
int main() {
A obj(3,8);
obj.display();
return 0;
}输出结果
num1 = 3 num2 = 8
在上述程序中,类A包含一个参数化构造函数,该构造函数使用n1和n2提供的值初始化num1和num2。它还包含一个display()打印num1和num2值的函数。给出的代码片段如下。
class A {
private:
int num1, num2 ;
public:
A(int n1, int n2) {
num1 = n1;
num2 = n2;
}
void display() {
cout<<"num1 = "<< num1 <<endl;
cout<<"num2 = "<< num2 <<endl;
}
};该函数main()包含类类型为A的对象的对象定义。然后display()调用该函数。如下所示。
A obj(3,8); obj.display();