C++复习 - 类和对象
2021/7/14 11:34:47
本文主要是介绍C++复习 - 类和对象,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
声明: 本篇博客的学习途径主要为以下网站和课堂讲解,发博客目的仅为学习使用
http://c.biancheng.net/cplus/
目录
- 类
- 类外实例化对象:对象与new
- 类内:成员函数的声明与定义
- 类内: 成员访问权限
- C++对象的内存模型
类
类只是一个模板(Template),是一个设计图,编译后不占用内存空间,所以在定义类时不能对成员变量进行初始化,因为没有地方存储数据。
只有在创建对象,(盖楼)以后才会给成员变量分配内存,这个时候就可以赋值了。
成员变量大都以m_开头,这是约定成俗的写法,不是语法规定的内容。以m_开头既可以一眼看出这是成员变量,又可以和成员函数中的形参名字区分开。
类外实例化对象:对象与new
对象: 实例化的对象
栈上创建出来的对象有名字,比如stu。
使用 new 在堆上创建出来的对象是匿名的,没法直接使用,必须要用一个指针指向它,再借助指针来访问它的成员变量或成员函数。
Student stu; Student *pStu = &stu; Student *pStu = new Student;
借助的这个指针*pstu 通过->来访问对象的变量和函数,与结构体指针类似。
类内:成员函数的声明与定义
成员函数必须先在类体中作原型声明,然后在类外定义,也就是说类体的位置应在函数定义之前。
定义在类外,需要用到域解析符::
class Student{ public: //成员变量 char *name; int age; float score; //成员函数 void say(); //函数声明 }; //函数定义 void Student::say(){ cout<<name<<"的年龄是"<<age<<",成绩是"<<score<<endl; }
- 为什么函数声明在类内,定义在类外呢?
因为类体内部定义的函数默认就是内联函数。
内联函数一般不是我们所期望的,它会将函数调用处用函数体替代,所以我建议在类体内部对成员函数作声明
∴ 没有必要在类外把定义在类外的函数添加inline关键字。
类内: 成员访问权限
成员访问限定符:public , protected , private
只在内部类使用的变量设为private
允许外部调用的函数 设为public
(常通过public的set get来修改和获得类内的private变量)
只允许子类访问的变量设为:protect
所谓封装,是指尽量隐藏类的内部实现,只向用户提供有用的成员函数。
C++对象的内存模型
编译器会将成员变量和成员函数分开存储:分别为每个对象的成员变量分配内存,但是所有对象都共享同一段函数代码
这篇关于C++复习 - 类和对象的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-19WebSocket入门指南:轻松搭建实时通信应用
- 2024-11-19Nacos安装资料详解:新手入门教程
- 2024-11-19Nacos安装资料:新手入门教程
- 2024-11-19升级 Gerrit 时有哪些注意事项?-icode9专业技术文章分享
- 2024-11-19pnpm是什么?-icode9专业技术文章分享
- 2024-11-19将文件或目录压缩并保留到指定的固定目录怎么实现?-icode9专业技术文章分享
- 2024-11-19使用 tar 命令压缩文件并且过滤掉某些特定的目录?-icode9专业技术文章分享
- 2024-11-18Nacos安装入门教程
- 2024-11-18Nacos安装入门:轻松掌握Nacos服务注册与配置管理
- 2024-11-18Nacos配置中心入门:新手必读教程