IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> # C++ 封装之友元、内联函数、 -> 正文阅读

[C++知识库]# C++ 封装之友元、内联函数、

C++ 封装之友元、内联函数、

一、友元

1.概念:友元函数不是成员函数,它定义在类的外部,只需要在类中声明即可;友元函数可以访问所有私有成员和保护成员,一般情况下不去使用,使用不当会破坏程序面向对象的特性;

2.语法:friend <函数声明>

3.友元类

(1)定义:一个类声明另一个类是自己的友元;假如类A声明类B是自己的友元,那么在类B中可以访问类A所有的私有成员和保护成员;

(2)语法:friend <类名>

(3)注意事项:

1)友元不具有相互性,若类B是类A的友元,类A不一定是类B的友元;
2)友元不能被继承;友元不具有传递性;

二、内联函数

1.目的:解决程序中函数调用的效率问题。

2.原理:在编译器阶段,把函数复制镶嵌到主函数中,与调用一般函数不同,主函数在调用一般函数时,是指令跳转到被调用函数的入口地址,执行完被调用函数后,指令再跳转回主函数上继续执行后面的代码。

3.使用规则:

(1)函数声明和定义必须在同一文件进行,声明与定义时需要添加inline修饰符;

inline int func(<形参列表>)
{
<函数体>
}

(2)内联函数内不允许使用循环语句与开关语句;

(3)内联函数不能超过10行,如果超过则编译器不会替换,而还是使用调用的方式调用函数;

4.类与内联函数;

(1)类内定义的函数都是内联函数,不管是否加了关键字inline;

(2)声明在类内,定义在类外,看是否有关键字inline;

5.与宏定义的区别;

(1)宏是由预处理器进行代码替换,而内联函数由编译器进行代码替换;

(2)内联函数是真正的函数;

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-10-31 11:35:34  更:2022-10-31 11:39:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 4:01:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码