C++笔试
晨起煮粥
晨起煮粥,过午洗锅。
展开
-
C++中goto语句的使用
goto 语句允许把控制无条件转移到同一函数内的被标记的语句。goto语句的使用:1.保证函数只有一个出口的原则2.精简函数内二元动作的代码,如同个函数内的malloc 和 free,new 和 delete,加锁和解锁等操作(统一跳到函数结尾处释放)。如下例子:void Func(void){ char* p1=null; //此处,赋初值非常重要 char*...转载 2019-06-22 11:08:55 · 1942 阅读 · 0 评论 -
C/C++语言对内存的使用
C和C++的编译器,把私有内存分为3块,基栈、浮动栈和堆。如图:1、基栈:也叫静态存储区。这是编译器在编译期间。就已经固定下来必须要使用的内存,如程序的代码段,静态变量,全局变量,const常量等。程序一调入内存,至少就要占用这么多空间。有个简单的不太准确的算法,exe文件有多大,差不多基栈就有多大。2、浮动栈:很多书上,就叫“栈”,就是程序开始运行,随着函数,对象的一段段执行,函数内...转载 2019-06-11 17:05:53 · 296 阅读 · 0 评论 -
strcpy 和 memcpy函数的区别
strcpy和memcpy主要有以下3方面的区别。1、复制的内容不同。strcpy只能复制字符串,而memcpy可以复制任意内容,例如字符数组、整型、结构体、类等。2、复制的方法不同。strcpy不需要指定长度,它遇到被复制字符的串结束符"\0"才结束,所以容易溢出。memcpy则是根据其第3个参数决定复制的长度。3、用途不同。通常在复制字符串时用strcpy,而需要复制其他类型数据时...转载 2019-06-04 15:16:17 · 908 阅读 · 0 评论 -
struct和typedef struct
1 首先://注意在C和C++里不同 在C中定义一个结构体类型要用typedef: typedef struct Student { int a; }Stu; 于是在声明变量的时候就可:Stu stu1;(如果没有typedef就必须用struct Student stu1;来声明) 这里的Stu实际上就是struct Studen...转载 2019-06-13 16:54:54 · 128 阅读 · 0 评论 -
const与#define的区别
(0) 相同两者都可以用来定义常量; #define PI 3.14159 // 常量宏 const doulbe Pi=3.14159; // 常量(1) 编译器处理方式不同 define宏是在预处理阶段展开; const常量是编译运行阶段使用;(2) 类型和安全检查不同 define宏没有类型,不做任何类型检查,仅仅是展开。 c...转载 2019-06-06 11:29:47 · 755 阅读 · 0 评论 -
多态的实现方法(笔试题)
问:c++中多态是通过那种方式实现?答:在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时将会根据对象的实际类型来调用相应的函数。如果对象类型是派生类,就调用派生类的函数;如果对象类型是基类,就调用基类的函数。1.用virtual关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数。 2.存在虚函数的类都有一个一维的虚函数表叫做虚表,类的对象有一个指向虚表开始的虚指针。虚表是和...转载 2018-06-30 18:22:30 · 507 阅读 · 0 评论 -
继承与组合(笔试题)
问题:继承和组合那种是高内聚低耦合,为什么?答:组合是高内聚低耦合。1.高内聚:组合是通过对现有的对象进行拼装(组合)产生新的、更复杂的功能。2.低耦合:组合不破坏封装,整体类与局部类之间松耦合,彼此相对独立。面向对象编程讲究的是代码复用,继承和组合都是代码复用的有效方法。组合是将其他类的对象作为成员使用,继承是子类可以使用父类的成员方法。引用一个生动的比方:继承是说“我父亲在家里给我帮了很大的忙...原创 2018-06-19 10:37:36 · 480 阅读 · 0 评论