C++的入门基础知识
文章平均质量分 64
Pluto张同学
学生
展开
-
C++特性之多态
多态的定义及实现通俗的来讲,就是多形态,不同的对象去完成同一个行为会有不同的状态。(比如买票的话,成人票是200,学生可以半价买票,军人可以优先买票)在编程中,多态就是不同继承关系的类对象,去调用同一个函数,会有不同的行为。1.多态的构成条件必须用基类的引用或指针来调用这个虚函数被调用的函数必须是虚函数,并且派生类必须对基类的虚函数进行重写如果不满足多态的话,调用哪个函数跟类型有关,people是哪个类型的,调用的就是哪个类型的成员函数。如果满足多态的话,调用哪个函数跟对象有关,传的是哪原创 2021-05-22 10:44:37 · 1345 阅读 · 6 评论 -
C++特性之继承
继承的概念和定义1.作用通俗的来说,继承就是从类的设计角度避免重复定义方法和数据,进行类角度的复用//这就是继承class Person{protected: string _name = "peter";//注意这里不是初始化,初始化是在定义的地方进行,而这里只是声明。这里是缺省值。 int _age = 20;};class Student : public Person{protected: int _grade;//年级};class Teacher : publi原创 2021-05-20 15:58:06 · 1549 阅读 · 10 评论 -
C++ 中的范围for循环
基于范围的for循环C++111.范围for的语法在C++98中如果要遍历一个数组,按如下方式进行void Test(){ int array[] = { 1,2,3,4,5 }; for (int i = 0; i < sizeof(array) / sizeof(array[0]); i++) array[i] *= 2; for (int* p = arraylp < array + sizeof(array) / sizeof(array[0]);p++)原创 2021-03-14 10:38:21 · 1392 阅读 · 5 评论 -
C++ 中的auto关键字
auto关键字C++111. auto简介在早期的C/C++中auto的含义是:使用auto修饰的变量,具有自动存储器的局部变量。C++11中,auto有了全新的含义:auto不再是一个存储类型的指示符,而是作为一个新的类型指示符来指示编译器,auto声明的变量必须由编译器在编译时期推导而得。int a = 5;auto b = a;cout << typeid(b).name() << endl;会自动推导出b的类型↑↑注意:使用auto定义变量时必须对其原创 2021-03-14 10:17:29 · 1302 阅读 · 2 评论 -
C++ 中的内联函数
内联函数1.内联函数的概念以inline修饰的函数叫做内联函数,编译时C++编译器会在调用内联函数的地方展开,没有函数压栈的开销,内联函数提升程序运行的效率inline void swap(int& a, int& b){ int tmp = a; a = b; b = tmp;}int main(){ int x = 1, y = 2; swap(x, y); return 0;}像swap函数是一个需要频繁调用的函数。调用函数的时候需要建立栈帧,建原创 2021-03-14 09:21:48 · 715 阅读 · 1 评论 -
C++ 中的引用
引用1.引用的概念引用不是新定义了一个变量,而是给已经存在的变量取了一个别名,编译器不会为引用变量开辟内存空间,他和他引用的变量共用一块内存空间(通俗点来讲,引用就是取别名)类型& 引用变量名(对象名)=引用实体(注意:引用类型和引用实体必须是同种类型的)void Test(){ int a = 5; int& b = a //b是a的别名,b是a的引用,另外注意这里的&不是取地址}2.引用的特性2.1引用在定义时必须初始化int& b;b原创 2021-03-14 08:52:07 · 2306 阅读 · 0 评论 -
C++ 中的函数重载
函数重载函数重载的概念:函数重载是函数的一种特殊情况,C++中允许同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数、类型、顺序)不同。注意:顺序不同指的是不同类型的参数顺序不同,而不是单纯的同类型参数顺序不同int Add(int left, int right)int Add(int right, int left)↑↑↑这样的不行↑↑↑int Add(int left, long right)int Add(long right, int left)//只原创 2021-03-13 17:43:21 · 5686 阅读 · 0 评论 -
C++ 中的命名空间
命名空间1.命名空间的定义:在C/C++中,变量、函数和类的名称都存在于全局域中,可能会导致很多冲突,使用命名空间的目的就是对标识符的名称进行本地化,以避免冲突或名字污染,namespace关键字的出现就是针对这种问题。1.1普通的命名空间namespace N1 //N1为命名空间名字{ //命名空间中的内容,既可以定义变量也可以定义函数 int a; int Add(int left, int right) { return left + right; }}1.2命名原创 2021-03-12 22:41:42 · 775 阅读 · 0 评论 -
C++ 中的缺省参数
缺省参数1.缺省参数的概念缺省参数是声明或定义函数时为函数的参数指定一个默认值,在调用该函数时,如果没有指定实参则采用该默认值,否则使用指定的实参void Test(int a = 1){ cout << a << endl;}int main(){ Test();//没有传参时,使用的时参数的默认值,即1 Test(2);//传参时,使用的是指定实参 return 0;}2.缺省参数的分类2.1全缺省参数void Test(int a = 1,原创 2021-03-12 23:05:22 · 1717 阅读 · 0 评论