c++基础知识
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
C++自我总结,如果出路烦请指正!!
一、#include<>和#include""
前者常用来包含系统标准头文件,编译器会在系统保存标准头文件的位置找头文件。
后者常用与包括码农自己编写的头文件,编译器会按照这种格式在当前目录查找指定名称的头文件,然后再去标准头目录查找(也就是系统保存标准头文件的位置)
二、<string.h>和<string>
这两个是不同的文件,可千万别面试的时候说一样,没有区别!!!
如果不放心,可以在编译器文件夹中找到
先说结论,前者是C语言头文件,后者是C++头文件
早些时候,C语言为了将标准库定义在全局空间李,声明放在 .h后缀的头文件中,C++为了有区别,就去掉了.h
使用<iostream.h>时,相当于C调用了库函数,使用全局命名空间
其实大部分.h头文件都会有一个不带.h的头文件与之对应,简单理解,就是升级版,当然特例也有,并非是<string.h>的升级版。
三、重写与重载
重写是指子类重新实现基类中的虚函数,注意子类重写基类虚函数时,函数名、参数列表、返回类型都必须与基类一致。基类指针或引用调用虚函数,实际执行子类的函数。重载是在同一作用域内定义多个名称相同,但参数列表、返回值不同的函数(注意当参数列表相同,但返回值不同,无法编译器确定要调用哪个函数,因为在调用函数时,函数返回值是不确定的。)、函数的重载与带默认值的函数一起使用时,需要注意可能引起二义性。。重载运算符实现,两个相同结构体对象相加。重载运算符包括算术、逻辑、关系(大于、等于)
虚函数与纯虚函数
虚函数在基类被声明为虚拟的函数,在派生类中可以被重载,程序能够在运行时动态地确定调用了哪个函数,存续函数,是一个没有实现的虚函数,它的声明、参数以及返回值和普通虚函数相同,只是没有实体,而且不能创建对象,只能在派生类中被实现。如果一个类包含纯虚函数那么他就是一个抽象类。