C++学习第一篇 ---类
2022/1/23 14:04:29
本文主要是介绍C++学习第一篇 ---类,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
类
个人理解:类 及分类 目的是把所有相关的东西归纳到一起 比如说正方形类、圆形类 其中可以包含数据成员和函数成员 类似于C语言的结构,可以说是自己定义的一种新的数据类型
关键字 class
例:
声明部分:
---------------------------------------------
class yuanxing{//圆形
public:
double r;//半径
double mianji();//面积
double zhouchang();//周长
}
----------------------------------------------
定义部分:
----------------------------------------------
double yuanxing::mianji()
{return 3.14*r*r;}
double yuanxing::zhouchang()
{return 2*r*3.14;}
以如上的格式定义了名为”yuanxing”的类 其中包含了double类型的数据成员 半径和函数成员 面积和周长 数据成员和函数成员合称类成员
声明数据成员的语法形式类似于定义变量,所不同的是声明数据成员不能初始化
函数成员可以直接访问本类中的数据成员,可以直接调用本类中的其他成员
类的访问权限有3种
Public(公有权限)
Protected(保护权限)
Private(私有权限)
拥有公有权限的成员可以被类外部直接访问 剩余两种权限不能呗外部直接访问
重载函数:不同函数成员之间可以重名,即重载,但是重载函数的形参个数不能相同,或者数据类型不能相同 例如 mianji(int a); mianji(double a); mianji(int a, int b);就为三个重载函数
内联函数:关键字”inline” 可省略函数跳转和数据传递的过程。在编译源程序时将函数代码之间嵌入没一个调用语句出,而在执行时不再进行函数的跳转和数据传递。在做大的项目时重复利用次数多可以提高执行速度。
构造函数:用于数据成员的初始化
构造函数名必须与类名相同
构造函数由计算机自动调用
构造函数通过形参传递初始值,实现对新建对象数据成员的初始化(类似于普通函数的传值)
构造函数可以重载,可提供多种形式的对象构造方法
构造函数通常是类外调用,其访问权限应设置为public或protrcted,不能设置为private。
如果一个类没有定义构造函数,编译器在编译时将自动添加一个为空的构造函数
析构函数:与构造函数完全相反(类似于new和delete),结束生命周期,清理内存
~类名
析构函数由计算机自动调用,程序员不能直接调用,在函数结束时会自动执行
同样类外调用,应设置为public或protrcted
没有定义会自动建立一个为空的析构函数
友元函数:关键字”friend”
友元函数定义的对象可以访问本类中的所有类成员,不受限制
友元函数式类以外的其他函数,不是类的成员
友元关系是单向的
友元关系不能传递
类与对象的编译原理:
每个对象所占用的内存空间都等于类中全部数据成员所需内存空间的总和
多个同类对象共用一个函数,内存中只需要保存一份函数代码
这篇关于C++学习第一篇 ---类的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享