21xrx.com
2024-06-03 00:31:50 Monday
登录
文章检索 我的文章 写文章
C++默认构造函数是否带参数?
2023-07-11 11:50:15 深夜i     --     --
C++ 默认构造函数 参数

C++默认构造函数是不带参数的。当我们定义一个类时,如果没有显式地定义构造函数,则编译器会自动生成一个默认构造函数。这个默认构造函数不带参数,也就是说,在创建类的实例时不需要传递任何参数。

例如,下面的代码定义了一个名为Person的类,但是没有显式地定义构造函数:


class Person {

public:

  void setAge(int age)

    m_age = age;

  

  int getAge()

    return m_age;

  

private:

  int m_age;

};

在下面的代码中创建了Person类的实例,不需要传递任何参数:


Person person;

person.setAge(20);

cout << "age = " << person.getAge() << endl;

输出结果为:age = 20。

但是,如果我们显式地定义了构造函数,则默认构造函数将不再生效。例如,下面的代码定义了一个带参数的构造函数:


class Person {

public:

  Person(int age)

    m_age = age;

  

  void setAge(int age)

    m_age = age;

  

  int getAge()

    return m_age;

  

private:

  int m_age;

};

在下面的代码中创建了Person类的实例,需要传递一个整数参数:


Person person(20);

cout << "age = " << person.getAge() << endl;

输出结果为:age = 20。在这种情况下,不再存在默认构造函数,传递参数是必需的。

总之,C++默认构造函数是不带参数的,除非显式地定义了带参数的构造函数。在创建类的实例时,可以选择使用默认构造函数或者自定义的构造函数,具体取决于应用场景和类的设计。

  
  

评论区

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