C++学习

C++与c的不同点

1.C++完全兼容C的所有内容
2.C++支持面向对象编程思想
3.C++支持运算符、函数的重载
4.C++支持泛型编程、模板
5.C++支持异常处理
6.C++类型检查严格

C++与C的结构不同点

1.C++不需要typedef,定义结构变量的时候可以省略关键字struct
2.C++可以有成员函数,在成员函数中可以直接访问成员变量,不需要.或->,C的结构成员可以是函数指针。
3.C++的结构有一些隐藏函数:构造、析构、拷贝构造和赋值构造。
4.C++的结构可以继承,可以设置成员的访问权限。

函数重载

在同一个作用域下,函数名相同,参数列表不同的函数,构成重载关系。

因为在C++代码编译的时候会把参数的类型添加在函数名的末尾,所以函数名相同但是函数参数列表不同时,在编译时会被视为不同的函数。

内联函数和宏函数的区别

1.宏函数不是函数,内联函数是真正的函数。
2.宏函数只是代码的替换,不会有压栈、出栈,不会有返回值;内联函数会有压栈、出栈,可以有返回值。
3.宏函数不会检查类型,内联函数类型检查严格,可以用函数重载来达到多种类型都能使用。

面向对象编程

1.抽象:找到一个能够解决问题的“对象”,找出解决问题需要的数据和功能。
2.封装:把抽象的结果归结为一个类,并实例化类对象,设置对象的属性,调用功能达到解决问题的效果。
3.继承:先考虑之前的类有没有能够解决问题,如果有就可以继承后再进行拓展,可以缩短解决问题所需的时间和难度。
4.多态:外部对对象发送一个指令,对象会根据自身情况做出独特的反应。

覆盖的条件

1.必须时虚函数
2.必须是父子之间
3.函数参数列表完全一样
4.返回值必须是同类或者是父子类(子类的返回值要能向父类隐士转换)

多态的条件

1.父子类之间有函数构成覆盖关系
2.父类的指针或引用指向子类对象

你可能感兴趣的:(知识整理)