c++类和对象一对象特性一构造函数和析构函数

简介: c++类和对象一对象特性一构造函数和析构函数

在面向对象编程(Object-Oriented Programming,OOP)中,类是对象的模板,而对象是类的实例。每个对象都有其特性,这些特性在C++中通常通过成员变量来表示,而对象的行为则通过成员函数来定义。对象的生命周期中,有两个特别重要的成员函数:构造函数(Constructor)和析构函数(Destructor)。

 

构造函数(Constructor)

构造函数是一种特殊的成员函数,它在创建对象时自动调用。它的主要目的是初始化对象的数据成员。构造函数的名称与类的名称相同,并且它不接受任何返回类型,甚至不是void。

 

特点:

构造函数可以有参数,也可以没有参数。

如果有多个构造函数,它们被称为构造函数的重载。

构造函数可以是public、protected或private,但通常它们是public的,以便可以从类的外部创建对象。

示例


image.png image.png

析构函数(Destructor)

析构函数是另一种特殊的成员函数,它在删除对象时自动调用。析构函数用于执行任何必要的清理任务,例如释放动态分配的内存或关闭文件等。析构函数的名称是在类名前加上一个波浪号(~)。

 

特点:

析构函数没有参数,也没有返回类型。

析构函数只能有一个。

析构函数不能是const、volatile或static。

析构函数通常是public的,但也可以是protected或private。

示例:

image.png

在这个例子中,Person类有一个析构函数,它负责在delete p;语句执行时释放Person对象可能占用的资源。

 

总结

构造函数和析构函数是C++中面向对象编程的两个重要特性,它们分别负责在对象创建和销毁时执行特定的操作。构造函数允许我们在对象创建时对其进行初始化,而析构函数则确保在对象不再需要时能够正确地清理资源。合理地使用这两个函数可以帮助我们编写更加健壮和安全的代码。

目录
相关文章
|
6天前
|
存储 编译器 C++
【c++】类和对象(中)(构造函数、析构函数、拷贝构造、赋值重载)
本文深入探讨了C++类的默认成员函数,包括构造函数、析构函数、拷贝构造函数和赋值重载。构造函数用于对象的初始化,析构函数用于对象销毁时的资源清理,拷贝构造函数用于对象的拷贝,赋值重载用于已存在对象的赋值。文章详细介绍了每个函数的特点、使用方法及注意事项,并提供了代码示例。这些默认成员函数确保了资源的正确管理和对象状态的维护。
29 4
|
7天前
|
存储 编译器 Linux
【c++】类和对象(上)(类的定义格式、访问限定符、类域、类的实例化、对象的内存大小、this指针)
本文介绍了C++中的类和对象,包括类的概念、定义格式、访问限定符、类域、对象的创建及内存大小、以及this指针。通过示例代码详细解释了类的定义、成员函数和成员变量的作用,以及如何使用访问限定符控制成员的访问权限。此外,还讨论了对象的内存分配规则和this指针的使用场景,帮助读者深入理解面向对象编程的核心概念。
26 4
|
30天前
|
存储 编译器 对象存储
【C++打怪之路Lv5】-- 类和对象(下)
【C++打怪之路Lv5】-- 类和对象(下)
27 4
|
30天前
|
存储 安全 C++
【C++打怪之路Lv8】-- string类
【C++打怪之路Lv8】-- string类
21 1
|
26天前
|
C++
C++ 20新特性之结构化绑定
在C++ 20出现之前,当我们需要访问一个结构体或类的多个成员时,通常使用.或->操作符。对于复杂的数据结构,这种访问方式往往会显得冗长,也难以理解。C++ 20中引入的结构化绑定允许我们直接从一个聚合类型(比如:tuple、struct、class等)中提取出多个成员,并为它们分别命名。这一特性大大简化了对复杂数据结构的访问方式,使代码更加清晰、易读。
32 0
|
30天前
|
编译器 C语言 C++
【C++打怪之路Lv4】-- 类和对象(中)
【C++打怪之路Lv4】-- 类和对象(中)
23 4
|
1月前
|
存储 编译器 C++
【C++类和对象(下)】——我与C++的不解之缘(五)
【C++类和对象(下)】——我与C++的不解之缘(五)
|
1月前
|
编译器 C++
【C++类和对象(中)】—— 我与C++的不解之缘(四)
【C++类和对象(中)】—— 我与C++的不解之缘(四)
|
1月前
|
C++
C++番外篇——对于继承中子类与父类对象同时定义其析构顺序的探究
C++番外篇——对于继承中子类与父类对象同时定义其析构顺序的探究
53 1
|
1月前
|
编译器 C语言 C++
C++入门4——类与对象3-1(构造函数的类型转换和友元详解)
C++入门4——类与对象3-1(构造函数的类型转换和友元详解)
19 1