21xrx.com
2025-04-07 10:39:44 Monday
文章检索 我的文章 写文章
C++ 类默认生成的函数有哪些?
2023-07-04 06:45:13 深夜i     14     0
C++ 默认生成 函数

C++是一种高级编程语言,支持面向对象编程(OO)风格。在C++中,类是用于声明对象的蓝图,它包含了一些属性和方法。当我们在定义一个类时,C++会自动为我们生成一些默认的成员函数,以避免我们错误地使用它们。本文将介绍C++ 类默认生成的函数有哪些。

1. 默认构造函数

类的默认构造函数是一个不带参数的构造函数,它不执行任何操作。如果我们没有定义任何构造函数,C++会自动为我们生成一个默认构造函数。

例如:

class Dog{
  public:
    int age;
    Dog(); //默认构造函数
};
Dog::Dog()
  age = 0;

2. 拷贝构造函数

拷贝构造函数用于从一个现有对象中创建一个新对象。当我们没有定义自己的拷贝构造函数时,C++编译器会自动为我们生成一个。

例如:

class Dog{
  public:
    int age;
    Dog(); //默认构造函数
    Dog(const Dog&); //拷贝构造函数
};
Dog::Dog()
  age = 0;
Dog::Dog(const Dog& otherDog)
  age = otherDog.age;

3. 赋值运算符函数

赋值运算符函数用于将一个对象的值赋值给另一个对象。如果我们没有定义自己的赋值运算符函数,C++会为我们生成一个默认的赋值运算符函数。

例如:

class Dog{
  public:
    int age;
    Dog(); //默认构造函数
    Dog(const Dog&); //拷贝构造函数
    Dog& operator=(const Dog&); //赋值运算符函数
};
Dog::Dog()
  age = 0;
Dog::Dog(const Dog& otherDog)
  age = otherDog.age;
Dog& Dog::operator =(const Dog& otherDog) {
  age = otherDog.age;
  return *this;
}

4. 析构函数

析构函数用于释放对象在创建时分配的资源。如果我们没有定义自己的析构函数,C++会为我们生成一个默认的析构函数。

例如:

class Dog{
  public:
    int age;
    Dog(); //默认构造函数
    Dog(const Dog&); //拷贝构造函数
    Dog& operator=(const Dog&); //赋值运算符函数
    ~Dog(); //析构函数
};
Dog::Dog()
  age = 0;
Dog::Dog(const Dog& otherDog)
  age = otherDog.age;
Dog& Dog::operator =(const Dog& otherDog) {
  age = otherDog.age;
  return *this;
}
Dog::~Dog()

总结

在C++中,类默认生成的函数有四个:默认构造函数、拷贝构造函数、赋值运算符函数和析构函数。当我们在定义类时没有显式地声明这些函数时,C++会自动为我们生成它们。了解C++类默认生成的函数有哪些有助于我们编写更好的代码和更好的面向对象程序。

  
  

评论区