c++笔记之函数与预处理、类与对象、继承与派生

1、函数的使用可以减少程序的目标代码,实现程序代码共享,但调用函数所需的保存和恢复参数的过程需要系统时间和空间开销,使程序执行效率降低,特别是代码较短而又频繁调用的函数
2、内联函数,c++编译器直接将被调用函数的函数体中的代码插入到调用该函数的语句处,在函数运行时不再进行函数调用和返回的系统开销,从而解决了1的问题,特别使用于对运行效率要求高的应用场合。
    注意: 内联函数体内不允许有循环语句和开关switch语句,加入有则按普通函数处理
         内联函数体内不能包含任何静态变量和数组说明,也不能有递归调用
         内联函数不宜过长(1到5行为宜)
    (预处理宏省去了函数调用开销,但是也排除了有价值的c++类型检查)
3、具有默认值参数值的函数:
   有函数声明又有定义的,则定义函数时 不允许 再定义参数的默认值; 默认值的参数必须位于参数表的 最右边
4、c++存储空间区域:代码区、静态存储区( 存放静态和全局变 量)、栈区( stack存放动态局部变量 )、堆区( heap存放new和malloc()申请的动态内存 );堆区和栈区统称为动态存储区
5、条件编译:#ifdef-#else-#endif、#ifndef-#else-#endif、#if-#elif(多个)-#else-endif。
6、getline(str,n,'\n');第三个参数为结束符
   strlwr(str);转换成小写字母
   strupr(str);转换成大写字母
7、拷贝构造函数: 类名::拷贝构造函数名(类名 &引用名) ,是一种特殊的构造函数,用一个已知的对象来初始化另一个对象
   默认拷贝为浅拷贝, 并未给新对象分配新的空间 ,只进行对象数据成员简单赋值,所以需要新的空间的话,需要自己定义拷贝构造函数,并申请新的空间,直接使用默认拷贝构造函数的话会出错。
8、malloc()函数分配空间的时候不调用对象的构造函数,而new会。
9、友元函数定义在类外部,但需要在类体内声明,友元函数可以访问类中的保护和私有成员。
10、继承机制:从基类继承的保护成员允许在派生类内部访问,类外不可访问,在派生类中不可以访问基类的私有成员。
11、构造函数不能够被继承,基类成员的初始化由派生类构造函数自动调用基类构造函数来完成。
12、派生类构造函数调用顺序:基类构造函数、子对象构造函数、派生类构造函数(析构函数顺序相反)。
13、标准模板库(standard template library,STL),主要由容器(Container)、迭代器(Iterator)、和算法(Algorithm)三大部分组成。其中容器用于存储对象,并定义能够操作这个对象的接口。常见的STL容器包括向量(vector)、链表(list)、集合(set)、栈(stack)、队列(queue)、映射(map)等。STL算法独立于容器,STL迭代器类似于容器中指向对象的指针,每个容器都有自己的迭代器,算法通过迭代器来遍历和访问容器中的元素。
14、可以将const理解为常量,所以需要传递或者返回常量时,便可使用const。
15、使用私有或保护的继承方式屏蔽从基类继承下来的公有成员,可以利用访问声明的方式恢复访问权限:
    public:
        基类名::成员名;
16、 从虚基类派生的子类的构造函数的 初始化列表中要列出对虚基类构造函数 的调用,但只有用于建立对象的派生类的构造函数调用虚基类的构造函数,而该 派生类的所有基类中列出 的对 虚基类的构造函数 的调用在执行中都被 忽略 ,这样才能保证对虚基类对象只初始化一次。
17、 同一层中对 虚基类构造函数 的调用总是先于 普通基类 的构造函数
18、即使基类中的私有数据成员不能继承到派生类中,但c++编译系统也为派生类对象分配基类中这些私有数据的存储空间
19、把派生类的对象赋给基类对象是合理的,不过要求这种继承方式必须是 public 方式。
    基类指针指向一个派生类对象也是安全的,但是这种方式 只能引用基类成员
    c++提供daynamic_cast运算符,尽管不影响程序的正确性,但这样改动后程序更加清晰:dynamic_cast<类型 *>(表达式)。







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值