
C/C++复习
Hello_xzy_Word
学如逆水行舟,不进则退
展开
-
C/C++复习之 指向常量的指针、常指针、指向常量的常指针
指向常量的指针 从名称上看,指针变量指向的是一个常量,所以不能通过指针变量来改变这个常量的值。指向常量的指针变量,不能改变指向的常量的值,但是可以改变自己的值(指针变量的值为其他变量的地址,所以改变指针变量的值即将指针指向其他变量) 常指针 常指针是指值不能改变的指针变量。指针变量的值是其他变量的地址,所以不能指针变量的值不能改变指的是指针变量不能指向其他变量,一开...原创 2019-04-15 16:31:22 · 3629 阅读 · 0 评论 -
C/C++复习之 友元、类的组合、常类型
1、友元友元函数友元函数可以是其他类的成员函数,也可以是不属于类的普通函数。在类中声名友元函数,只需在其函数声名前加上friend关键词。友元函数可以访问类的所有成员。因为友元函数不是类的成员函数,所以友元函数不能直接访问类对象的数据成员,也不能通过this指针访问类的数据成员,他必须通过作为入口参数传递进来的对象名来访问引用该对象的数据成员。上图代码中的show1函数被声名为类A...原创 2019-04-20 11:12:12 · 488 阅读 · 0 评论 -
C/C++复习之 条件编译
条件编译功能对于程序的移植和裁剪时很有用的,查看过μCOSⅡ操作系统的内核源代码,里面大量使用了条件编译,方便用户根据自个的需要,对系统内核进行裁剪。条件编译的3种形式:(1)#ifdef 标识符 程序段1#else 程序段2#endif作用:如果指定的标识符已经被#define命令定义,则编译程序段1,否则编译程序段2。(2)#i...原创 2019-04-23 21:24:47 · 177 阅读 · 0 评论 -
C/C++复习之 文件包含
文件包含是C/C++预处理文件的一个重要功能。文件包含命令的一般形式为:#include<文件名> 或者 #include"文件名"文件包含命令的功能是用指定文件中的代码替换该命令行,从而把指定的文件和当前文件的源程序文件连成一个文件。“ ” 和 < > 两种形式包含头文件是由区别的:< >表...原创 2019-04-23 21:14:42 · 288 阅读 · 0 评论 -
C/C++复习之 字符数组
在C语言中没有设置专门的字符串数据类型,通常使用一维字符数组存放一个字符串,使用二维数组存放多条字符串。字符串是由若干字符组成的,以字符‘\0’作为结束标识符的一个符号序列。字符串“Hello”的实际长度为5,但是在计算机内存中占用6个存储单元,因为字符串“Hello”隐含有结束表示‘\0’字符数组的赋值与使用:1、指定长度的字符数组的赋值和使用str[12] = {'...原创 2019-04-23 19:49:04 · 345 阅读 · 0 评论 -
C/C++复习之 scanf() 和 gets() 获取字符串的区别
scanf("%s",)可以一次输入多个字符串,每个字符串的输入以空格结束。gets(),一次只能输入一个字符串,输入以回车结束。原创 2019-04-23 19:24:25 · 281 阅读 · 0 评论 -
C/C++复习之 虚析构函数
以上程序的执行结果:C++中当派生类的对象撤销时,一般先执行基类的构造函数,然后执行派生类的析构函数。以上程序的执行结果是符合预期的,再看以下代码:以上代码运行结果:运行结果可以看到,本程序只执行了基类的析构函数,而没有执行派生类的析构函数。主函数中,用new运算符建立了一个派生类的无名对象,并将一个基类的指针变量指向了这个对象,当delete函数被调用后系统只执行了...原创 2019-04-27 22:49:19 · 240 阅读 · 0 评论 -
C/C++复习之 虚函数
概念面向对象程序设计的基本特征:抽象、封装、继承、多态C++中,多态分为编译时的多态性和运行时的多态性。编译时的多态是通过函数重载实现的,运行时的多态是通过虚函数实现的。虚函数是重载的另一种形式。这是一种动态的重载方式,它提供了一种更为灵活的运行时的多态机制。虚函数允许函数调用于函数体之间的联系在程序运行时才建立,也就是在程序运行时才决定函数的具体内容,即所谓的动态联编。...原创 2019-04-27 22:05:33 · 286 阅读 · 0 评论 -
C/C++复习之 const与#define
在C中习惯使用#define来定义常量,例如上图中的:#define NUM 1+1实际上,这种方法只是在预编译时进行简单的“字符替代”,将程序中出现的标识符NUM全部替换成“1+1”.预编译之后,程序中将不再有NUM这个标识符。所以上图程序中的语句“NUM - NUM”经过程序预编译后变成了“1 + 1 - 1 + 1”,所以输出的结果等于2.使用#define定义的标识符...原创 2019-04-15 15:50:57 · 206 阅读 · 0 评论 -
C/C++复习之 静态成员
为了实现一个类的多个对象之间的数据共享,C++提出了静态成员的概念。静态成员包括静态数据成员和静态成员函数。 静态成员变量 想在一个类的多个对象之间实现数据共享有两种方法:1、全局变量2、静态数据成员使用全局变量不太安全,所以有了静态成员变量。在一个类中若在一个变量前加上static 这个种变量就称为静态成员变量。静态成员变量属于类,不属于类的某个对象。 ...原创 2019-04-17 21:59:06 · 482 阅读 · 0 评论 -
C/C++复习之 ‘a’ 和 "a" 的区别
1、‘a’ 是一个字符,可以赋值给一个字符变量。"a"是一个字符串。2、‘a’的长度为1,"a"的长度为2。C中的字符串以‘\0’结尾。原创 2019-04-16 21:02:19 · 3376 阅读 · 0 评论 -
C/C++复习之 this指针
当定义了一个类的若干对象后,系统会自动的为每一个对象分配存储空间。如果一个类中包含了数据成员和成员函数,就要分别为数据成员和成员函数分配代码的存储空间。事实上,给对象赋值就是给对象的数据成员赋值,不同的对象的存储单元中存放的数据值通常是不同的,而不同对象的函数代码是相同的,不论调用哪个对象的成员函数,实际上调用的都是相同内容的代码。因此,没有必要为每一个对象开辟一块空间用来存储成员函数。实...原创 2019-04-16 20:53:08 · 170 阅读 · 0 评论 -
C/C++复习之 类的一些细节
声名一个类便声名了一种类型,但是它并不接收和存储具体的值,类只是作为声名以类对象的样板。只有定义了类的对象后,系统为对象分配了存储空间,才能在对象中存储数据。所以在声名类时不能给数据成员赋值。class A{ int num=0;//错误};公有成员函数是类对外开放的访问接口,私有的、保护的成员是类的内部数据和内部实现。...原创 2019-04-16 19:26:38 · 117 阅读 · 0 评论 -
C/C++复习之 C++中的结构体、类的成员函数
C++中的结构体 C++对C中的结构体做了扩充和改进。1、定义变量在C++中,结构体名可直接作为类型名,在定义变量时,不必在结构体名前加struct。2、成员函数C中的结构体中可以包含各种类型的变量,我们称之为数据成员。C++中的结构不仅可以包含各种类型的数据,还能包含函数,我们称之为成员函数。 C++中的类 C++中提供了比结构体更有效的数据类型——类。定...原创 2019-04-16 19:18:50 · 3293 阅读 · 0 评论 -
C/C++复习之 派生类与继承
声名一个子类(派生类)的一般格式:class 子类名:[继承方式]父类名{ 子类新增的数据成员和成员函数};继承方式有:private、protected、public(私有继承、保护继承、公有继承)如果不显示的说明子类的继承方式,系统将默认继承方式为private(私有继承)子类继承父类的方式,决定了子类中新的成员函数以及子类的对象对从父类继承来的成员的访问权限。...原创 2019-04-21 15:47:44 · 1119 阅读 · 0 评论 -
C/C++复习之 内联函数
在函数说明前加上关键字“inline”,该函数就被声名为了内联函数,又称内置函数。以上代码实际上等价于:C++编译器在任何调用了内联函数的地方进行这样的操作:用内联函数函数体中的代码替换函数调用语句,同时用实参替换形参。程序在运行时不再需要进行函数调用。C++引入内联函数就是为了消除函数调用时的系统开销,以提高程序运行速度。程序执行过程中调用函数时,系统要将程序当前的一些...原创 2019-04-15 17:16:04 · 186 阅读 · 0 评论 -
C++ 模板
模板是 泛型编程 的基础,泛型编程即以一种独立于任何特定数据类型的方式编写代码。是一种更加高级别的抽象。C++中对模板的使用主要在函数模板和类模板两方面。...原创 2019-05-25 22:39:38 · 121 阅读 · 0 评论