21xrx.com
2024-12-27 21:36:56 Friday
登录
文章检索 我的文章 写文章
C++ 的默认构造函数
2023-07-04 19:41:41 深夜i     --     --
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++抽象类简述

评论区

{{item['qq_nickname']}}
()
回复
回复