首页 > 编程语言 >c++类详解

c++类详解

时间:2024-12-13 15:25:24浏览次数:3  
标签:函数 double c++ 详解 radius 析构 Circle 构造函数

学习转自:c++类详解-CSDN博客

 1 #include <iostream>
 2 using namespace std;
 3 
 4 class Circle {
 5 private:
 6     double radius;
 7  
 8 public:
 9     // 构造函数
10     Circle(double r) {
11         radius = r;
12     }
13  
14     // 计算面积
15     double getArea() {
16         return 3.14 * radius * radius;
17     }
18  
19     // 设置半径
20     void setRadius(double r) {
21         radius = r;
22     }
23 };
24  
25 int main() {
26     // 创建Circle对象
27     Circle c(5.0);
28  
29     // 调用成员函数
30     double area = c.getArea();
31     cout << "圆的面积:" << area << endl;
32  
33     // 修改半径
34     c.setRadius(7.0);
35     area = c.getArea();
36     cout << "修改后的圆的面积:" << area << endl;
37  
38     return 0;
39 }

 

什么是析构

析构是指对象生命周期结束时的清理过程。‌在编程中,析构是一个特定的过程,用于处理对象生命周期结束时需要进行的操作。它是构造函数的反向过程,构造函数负责对象的初始化和设置,而析构函数则是负责清理对象在内存中留下的资源,如关闭文件、断开网络连接、释放内存空间等。‌

析构函数的作用

析构函数的主要目的是释放对象在生命周期内分配的资源,避免资源泄漏和程序错误。当一个对象不再被使用或即将被销毁时,析构函数会被自动调用。这个过程是自动进行的,开发者无需手动干预。

析构函数的定义和使用

C++中,析构函数是一个特殊的成员函数,其名称与类名相同,但在前面加上波浪号~。例如,类名为ClassA的析构函数名为~ClassA()。析构函数没有返回值,也不接受参数。

标签:函数,double,c++,详解,radius,析构,Circle,构造函数
From: https://www.cnblogs.com/upcsyt/p/18605035

相关文章

  • 【C++】AVL树
    AVL树概念AVL树是最先发明的⾃平衡⼆叉查找树,AVL是⼀颗空树,或者具备下列性质的⼆叉搜索树:它的左右⼦树都是AVL树,且左右⼦树的⾼度差的绝对值不超过1。AVL树是⼀颗⾼度平衡搜索⼆叉树,通过控制⾼度差去控制平衡。AVL树得名于它的发明者G.M.Adelson-Velsky和E.M.Landis是......
  • C++中多态性在实际项目中的应用场景有哪些?
    一、图形绘制系统:在一个图形绘制系统中,可以定义一个抽象的图形类,然后派生出各种具体的图形类,如圆形、矩形、三角形等。通过多态性,可以使用一个统一的接口来绘制不同类型的图形,而不需要为每种图形都编写单独的绘制函数。二、游戏开发在游戏开发中,不同的游戏角色可能有不同的......
  • 关于数据隐藏:为什么要进行数据隐藏?如何在C++中实现数据隐藏?以及数据隐藏对面向对象编
    一、为什么要进行数据隐藏?数据隐藏可以提高程序的安全性和可维护性。可以将数据成员声明为私有或受保护,可以防止外部代码直接访问和修改这些数据,从而减少错误的发生。同时,数据隐藏也使得类的内部实现细节对外部不可见,这样在修改类的内部实现时,不会影响外部代码的使用。二、......
  • 有缘/无缘·蜂鸣器详解文章(内置驱动电路原理图)
    有缘/无缘蜂鸣器二者差别    常见蜂鸣器种类分为,有缘/无缘蜂鸣器,而对于初学者来说使用最多的,也是最常见的就是有缘蜂鸣器,而相较于无缘蜂鸣器二者的差别主要在于,有无内置振荡电路,驱动方式,外围电路的差别。有缘蜂鸣器    有缘蜂鸣器通常在蜂鸣器中内置震荡电......
  • 初探C语言|实现井字棋游戏(超详解)
    文章目录前言正文**1.游戏基本规则****2.代码结构和实现****2.1初始化棋盘****2.2打印棋盘****2.3玩家和电脑的回合****2.4判断胜利或平局****2.5游戏主循环****2.6游戏菜单**总结与优化欢迎讨论:如有错误或不足,欢迎指正和建议,本人主打“听劝”。当然,如有疑......
  • 保护数据安全:CryptoJS 加密与解密详解
    前言在信息化的今天,数据安全已成为各行各业的核心关注点。无论是网站、移动应用程序还是各类在线服务,都需要确保其敏感数据不会被未经授权的第三方获取或篡改。为了实现这一目标,开发者常常依赖于强大的加密技术。CryptoJS是一个广泛使用的JavaScript加密库,提供了多种高......
  • tomcat 架构详解
    Tomcat是一个开源的JavaServlet容器,用于部署JavaWeb应用程序。它实现了JavaServlet和JavaServerPages(JSP)技术规范,提供了Web请求处理和动态页面生成的能力。以下是对Tomcat架构的详细解析:Tomcat的核心组件Server:代表整个Tomcat容器,是Tomcat的顶级容器,它包含一个或多个S......
  • C++ STL常用容器之deque&list
    文章目录一、序列式容器二、双端队列deque2.1容器属性2.2Deque特点三、迭代器操作3.1使用迭代器完成3.2迭代器函数四、双向链表list4.1容器属性4.2list特点4.3相比vector新增函数五、vectordequelist之间的区别六、vector&deque&list之间的转换一、序列......
  • python中的面向对象详解
    python中的面向对象详解1.面向过程和面向对象1.1面向过程面向过程就是先分析出解决问题的步骤,再把步骤拆成一个个方法,是没有对象去调用的,通过一个个方法的执行解决问题。1.2面向对象面向对象就是将编程当成是一个事物(对象),对外界来说,事物是直接使用的,不用去管内部的情况,......
  • Patroni中对pg的重启、停止和启动详解
    Patroni中对pg的重启、停止和启动详解对于pg的重启、停止和启动的操作,都在/postgres/__init__.py文件中定义了相关的函数,都是调用其中的函数进行使用。1.停止1.1stop函数重启的函数为stop。其代码如下所示:defstop(self,mode:str='fast',block_callbacks:bool=......