21xrx.com
2025-07-15 11:54:32 Tuesday
登录
文章检索 我的文章 写文章
C++ 的默认构造函数
2023-07-04 19:41:41 深夜i     16     0
C++ 默认构造函数 构造函数 参数

C++ 是一门面向对象的编程语言,每个类都有一个或多个构造函数。默认构造函数是一个特殊的构造函数,它在没有任何参数的情况下被调用。如果一个类没有显式地定义构造函数,C++ 编译器会自动生成一个默认构造函数。默认构造函数的作用是为类的成员变量提供默认值,并在对象创建时初始化这些变量。

在默认构造函数中,每个基础数据类型的成员变量都被初始化为 0,指针类型的成员变量则被初始化为空指针。如果类有其他对象类型的成员变量,则这些成员变量也会被调用默认构造函数进行初始化。

默认构造函数的使用非常简单,只需要在创建对象时不使用参数即可。例如:

class MyClass{
 public:
  MyClass();
  void print();
 private:
  int num;
  char str[20];
};
MyClass::MyClass(){
 num = 0; //初始化成员变量
 strcpy(str,"Hello World"); //给字符数组成员变量赋值
}
void MyClass::print()
 cout << num << " " << str << endl;
int main(){
 MyClass obj;
 obj.print(); //输出“0 Hello World”
 return 0;
}

在上面的例子中,MyClass 类的默认构造函数已经被系统自动生成,它将 num 成员变量初始化为 0,将 str 数组成员变量初始化为 "Hello World"。在创建 MyClass 对象 obj 时,不需要传任何参数,即可使用默认构造函数。

如果你不想使用编译器自动生成的默认构造函数,也可以自己编写一个。下面是一个自定义的默认构造函数的例子:

class MyClass{
 public:
  MyClass() : num(100), str("Default"){ } //自定义默认构造函数
  void print();
 private:
  int num;
  string str;
};
void MyClass::print()
 cout << num << " " << str << endl;
int main(){
 MyClass obj;
 obj.print(); //输出“100 Default”
 return 0;
}

在这个例子中,我们自己编写了一个默认构造函数,将 num 成员变量初始化为 100,将 str 成员变量初始化为 "Default"。在创建 MyClass 对象时,该默认构造函数会被调用,并初始化成员变量。

  
  
下一篇: C++抽象类简述

评论区