C++ Primer Plus 笔记
文章平均质量分 50
ReverseThinking
一个勤奋的人 可以超越 一个懒惰的公司
展开
-
C++内存分区
C++程序的内纯格局通常分为4个区: 1.数据区(Data Area) 2.代码区(Code Area) 3.栈区(Stack Area) 4.堆区(即自由存储区)(Heap Area)全局变量、静态变量、常量存放在数据区,所有类成员函数和非成员函数代码存放在代码区,为运行函数而分配的局部变量、函数参数、返回数据、返回地址等存放在栈区,余下的空间原创 2013-11-06 11:35:12 · 599 阅读 · 0 评论 -
C++中引用(&)的用法和应用实例
对于习惯使用C进行开发的朋友们,在看到c++中出现的&符号,可能会犯迷糊,因为在C语言中这个符号表示了取地址符,但是在C++中它却有着不同的用途,掌握C++的&符号,是提高代码执行效率和增强代码质量的一个很好的办法。在 c++学习提高篇(3)---隐式指针的文章中我详细介绍了在隐式指针&的用法,其实这两个概念是统一的。引用是C++引入的新语言特性,是C++常用的一个重要内容之一,正确、原创 2013-11-06 12:24:45 · 524 阅读 · 0 评论 -
C++函数模板
C++提供了函数模板(function template)。所谓函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表。这个通用函数就称为函数模板。凡是函数体相同的函数都可以用这个模板来代替,不必定义多个函数,只需在模板中定义一次即可。在调用函数时系统会根据实参的类型来取代模板中的虚拟类型,从而实现了不同函数的功能。看下面的例子就清楚了。例4.7 将例4原创 2013-11-22 17:23:08 · 626 阅读 · 0 评论 -
C++函数默认参数
在C++中,可以为参数指定默认值。在函数调用时没有指定与形参相对应的实参时, 就自动使用默认参数。默认参数的语法与使用:(1)在函数声明或定义时,直接对参数赋值。这就是默认参数;(2)在函数调用时,省略部分或全部参数。这时可以用默认参数来代替。注意:(1)默认参数只可在函数声明中设定一次。只有在没有函数声明时,才可以在函数定义中设定。(#add ,此句意为存在函数声原创 2013-11-22 16:21:42 · 755 阅读 · 0 评论 -
C++内联函数
(1)什么是内联函数?内联函数是指那些定义在类体内的成员函数,即该函数的函数体放在类体内。(2)为什么要引入内联函数?当然,引入内联函数的主要目的是:解决程序中函数调用的效率问题。另外,前面我们讲到了宏,里面有这么一个例子:#define ABS(x) ((x)>0? (x):-(x))当++i出现时,宏就会歪曲我们的意思,换句话说就是:宏的定义很容易产生二意性。我们可以看原创 2013-11-22 16:34:56 · 661 阅读 · 0 评论 -
is-a与has-a的关系
is-a 是一个(种族) has-a 有一个(内含)a举例说明:如果你确定两件对象之间是is-a的关系,那么此时你应该使用继承;比如菱形、圆形、三角形和方形都是形状的一种,那么他们都应该从形状类继承而不是聚合。如果你确定两件对象之间是has-a的关系,那么此时你应该使用聚合;比如电脑是由显示器、CPU、硬盘等组成的,那么你应该把显示器、CPU、硬盘这些类聚合成电脑类,而原创 2013-12-08 13:42:26 · 1251 阅读 · 0 评论 -
C++ 虚基类
当一个基类被声明为虚基类后,即使它成为了多继承链路上的公共基类,最后的派生类中也只有它的一个备份。例如:class CBase { };class CDerive1:virtual public CBase{ };class CDerive2:virtual public CBase{ };class CDerive12:public CDerive1,CDerive2{ };原创 2013-12-08 14:36:15 · 669 阅读 · 0 评论 -
C++ 友元
我们已知道类具备封装和信息隐 藏的特性。只有类的成员函数才能访问类的私有成员,程式中的其他函数是无法访问私有成员的。非成员函数能够访问类中的公有成员,但是假如将数据成员都定义 为公有的,这又破坏了隐藏的特性。另外,应该看到在某些情况下,特别是在对某些成员函数多次调用时,由于参数传递,类型检查和安全性检查等都需要时间开 销,而影响程式的运行效率。 为了解决上述问题,提出一种使用友元的方案。原创 2013-12-06 00:45:44 · 596 阅读 · 0 评论 -
C++ 运算符重载
1.运算符重载是对已有的运算符赋予多重含义,使同一个运算符作用域不同类型的数据导致不同行为的发生。比如复制代码1 int i;2 int i1=10,i2=10;3 i=i1+i2;4 std::cout5 6 double d;7 double d1=20,d2=20;8 d=d1+d2;9 std::cout复制代码在这个程序里"+"既完成两个整原创 2013-12-06 00:55:12 · 714 阅读 · 0 评论