第一章 从C到C++
2020-04-04 16:00:39来源:博客园 阅读 ()
第一章 从C到C++
引用
-
相当于给变量取了别名,对其中任意变量的修改也会造成另一变量值的改变
-
用法:
-
引用定义后不可再修改引用对象
-
加
const
成常引用变量时,不可对通过引用变量更改引用值(常指针变量与之类似)
-
-
用于函数形参
- 用于函数返回值
int &getn(){return n;} int main(){ getn()=5; output(n); return 0; }
动态内存分配
-
用法
int *p=new int; delete p; p=new int[10]; //Assign space of the int array for p delete [] p; //Delete the array
-
与
malloc/free
的差异:new
能够创建对象,会调用构造函数,而malloc
只是单纯分配了一块空间delete
删除对象时调用析构函数,保证类内申请的动态内存能通过析构函数一并释放,而free
只是单纯释放指针所指空间
-
delete
&delete []
的差异:- 对于简单类型的数组,两者无差异
- delete虽释放数组空间,但只调用第一个元素的析构函数,其余元素不调用。
函数缺省参数&内联函数&重载函数
缺省参数
- 目的:提高程序可扩充性(新增参数时,不需要修改原有参数)
- 只能是右边的连续几个参数缺省,不可以跳过某个参数
内联函数
- 目的:减少函数调用开销
- 适用于简单的函数,执行速度快
- 编译器直接将函数代码嵌入调用处
重载函数
- 目的:减小命名的复杂性
- 条件:函数输入参数个数 | 类型 | 顺序不同(返回类型不同的不算)
- 编译器根据函数输入类型选择相应函数
类与对象
结构化程序设计的缺陷
- 程序=数据结构+算法
- 程序由全局变量及众多相互调用的函数组成,函数与其操作的数据结构没有直观联系
- 随程序规模增大,函数与数据结构的关系、函数间调用关系不直观
- 没有封装、隐藏概念,不利于程序维护、扩充、排错
- 关系复杂,难以复用
面向对象程序设计
-
面向对象的程序=类+类+类+……
-
将数据结构和操作该数据结构的函数捆绑在一起——即封装
-
特点:抽象、封装、继承、多态
-
内存分配:等于成员变量大小之和,函数为对象公用,另外存储
-
运算:可以用
=
赋值,但不能直接比较大小 -
访问属性:
- private仅该对象成员函数或同类成员函数可访问
- protected 仅同类成员函数及派生类可访问
- public 任意位置可访问
-
隐藏: private对象仅可通过成员函数访问,便于后期程序维护
-
函数重用: 成员函数参数表不同即可(需要注意避免缺省参数二义性),如
class A{ int x; public: void value(int n=0){x=n;} int value(){return x;} } //当调用value()时,存在二义性
原文链接:https://www.cnblogs.com/DreamEagle/p/12631944.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:第十章 C++11新特性
下一篇:c++中的多态机制
- C++ 转换函数搭配友元函数 2020-06-10
- C++ 自动转换和强制类型转换(用户自定义类类型) 2020-06-10
- C++ rand函数 2020-06-10
- C++ 友元函数 2020-06-10
- C++ 运算符重载 2020-06-10
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash