五、类与对象(一)内联成员函数、成员函数重载、类和结构体、this指针
来源:互联网 发布:淘客数据采集器下载 编辑:程序博客网 时间:2024/05/16 10:22
一、类的声明
类的声明如下形式:
class 类名称{ public: //公有成员(外部接口)类与外部的接口,任何外部函数都可以访问公有类型数据和函数。</span> private: //私有成员,只允许本类中的函数访问,而类外部的任何函数都不能访问。</span> protected: //保护成员,与private类似,其差别表现在继承与派生时对派生类的影响不同</span></span>};二、数据的抽象和封装
数据抽象是一种依赖于接口和实现分离的编程(和设计)技术。类设计者必须关心类是如何实现的,但使用该类的程序员不必了解这些细节。使用者只要抽象地考虑该类型做什么,而不必具体地考虑该类如何工作。
封装是一项将低层次的元素组合起来形成新的、高层次的实体的技术。函数是封装的一种形式:函数所执行的细节行为被封装在函数这个更大的实体中。被封装的元素隐藏了它们的实现细节——可以调用函数,但是不能直接访问函数所执行的语句。同样地,类也是一个封装的实体:它代表若干成员的聚集,设计良好的类隐藏了类实现的细节。三、内联成员函数
内联函数已经在这里讲过点击打开链接,这里在总结一下:
- inline关键字必须和函数定义结合在一起,否则编译器会直接忽略内联请求
- 内联函数在编译时直接将函数体插入函数调用的地方
- 因为函数是直接插入,所以函数不存在具体的地址,因此不能对函数进行取址操作
inline只是一种请求,编译器不一定允许这种请求
内联函数省去了普通函数调用时压栈,跳转和返回的开销
四、成员函数的重载及其缺省参数
重载和缺省参数已经讲过这里,情况类似
五、类与结构体
在C++中,class与struct的唯一的区别是:在未指定访问权限时,class默认的是私有的,struct默认是公有的。
六、隐含的this指针
在C++中,成员函数虽然是定义在类中的,但是成员函数并不占用对象的存储空间,成员函数会经过name magling的处理这里然后放在代码段。那么对象是如何能调用成员函数的呢?这是因为成员函数有一个隐含的附加形参,即指向该对象的指针,这个隐含的形参叫做this指针。也就是说我们调用stu.getAge();等价于调用getAge(Stu *this)这个函数。
这样做的好处是保证了每个对象可以拥有不同的数据成员,但处理这些成员的代码可以被所有对象共享。
0 0
- 五、类与对象(一)内联成员函数、成员函数重载、类和结构体、this指针
- C++回顾之成员函数重载、类与结构体、this指针
- C++回顾之成员函数重载、类与结构体、this指针
- 内联成员函数与重载成员函数
- 内联成员函数和重载成员函数
- 类和对象 , 四个默认成员函数及运算符重载 , 隐含的this指针
- 类和对象(this指针、默认成员函数及运算符的重载)
- 北大 C++ 2.5 内联成员函数与重载成员函数
- 成员函数和this指针
- 函数指针(全局函数/类成员函数)和函数对象
- C++基础:类与对象(对象调用成员函数 this指针)
- 谈函数指针(全局/类成员函数)和函数对象
- 谈函数指针(全局/类成员函数)和函数对象
- 谈函数指针(全局/类成员函数)和函数对象
- 类 this指针 const成员函数
- this指针?const函数?const对象成员?
- C++之this指针和const对象/成员函数
- 内联成员函数时钟类
- 第十六周项目二用指针玩字符串任务六:去除句子中所有多余的空格(用指针作形参)
- POJ 1511 Invitation Cards 链式前向星+SPFA练习
- B/S初探之HTML"ShowTime"
- 创业团队的冲突处理(转)
- CSS入门随笔
- 五、类与对象(一)内联成员函数、成员函数重载、类和结构体、this指针
- 代理模式(Proxy)简介
- 软件工程----第一遍机房文档之串思路
- c# TextBox控件的TextChanged响应函数
- android studio 打包apk
- 设置vs2008代码区的背景色
- linux学习之(三)-文件操作命令
- 唐僧为什么能当领导
- 扩展图形函数4,缩放的优化