C++ 中的构造函数
c++programmingserver side programming
构造函数是类的函数,在创建类的新对象时执行。构造函数与类同名,没有返回类型,甚至不是 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();