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();

更新于:2020年6月24日

9K+ 次浏览

启动您的职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.