21xrx.com
2025-06-27 05:03:59 Friday
文章检索 我的文章 写文章
C++ 默认构造函数是否带参数?
2023-06-24 02:42:42 深夜i     10     0
C++ 默认构造函数 参数

C++ 默认构造函数是指在类中没有显式地定义构造函数时,编译器会自动生成一个默认构造函数。默认构造函数的作用是完成对象的初始化工作,例如,给类中的成员变量赋初值。

默认构造函数可以不带参数,也可以带参数。如果不带参数,编译器会生成一个无参构造函数,例如:

class Person {
public:
  // 默认构造函数,不带参数
  Person()
    name = "";
    age = 0;
  
  void setName(string name)
    this->name = name;
  
  void setAge(int age)
    this->age = age;
  
private:
  string name;
  int age;
};

如果要让默认构造函数带参数,可以像下面这样:

class Person {
public:
  // 默认构造函数,带参数
  Person(string name, int age)
    this->name = name;
    this->age = age;
  
private:
  string name;
  int age;
};

需要注意的是,如果定义了带参数的构造函数,但没有定义无参构造函数,编译器将不会自动生成一个无参构造函数。如果再调用无参构造函数,编译器将会报错。

综上所述,C++ 默认构造函数既可以带参数,也可以不带参数,具体要看类的定义是否需要。如果定义了其他构造函数,但没有定义无参构造函数,需要手动定义一个。

  
  

评论区