摘要:
# 28.拷贝初始化和直接初始化 ●当用于类类型对象时,初始化的拷贝形式和直接形式有所不同:直接初始化直接调用与实参匹配的构造函数,拷贝初始化总是调用拷贝构造函数。拷贝初始化首先使用指定构造函数创建一个临时对象,然后用拷贝构造函数将那个临时对象拷贝到正在创建的对象。举例如下 ```C++ strin 阅读全文
摘要:
# 27.final和override关键字 在C++中,final是一个关键字,用于修饰类的成员变量和成员函数。 1.final修饰成员变量:当一个类中的成员变量被声明为final时,它就变成了常量,即它的值不能再被修改。final修饰的成员变量必须在类定义中进行初始化,且只能初始化一次。 假设我 阅读全文
摘要:
# 29.初始化和赋值的区别 在C++中,初始化和赋值是两个不同的概念。 需要注意的是,对于某些类型的变量,初始化和赋值的效果是一样的。例如,对于基本类型的变量,使用等号进行初始化和赋值的效果是一样的。但是对于一些复杂类型的变量,如类对象,初始化和赋值的效果是不同的。在这种情况下,初始化会调用类的构 阅读全文
摘要:
# 25.C++的顶层const和底层const 任意常量对象为**顶层const**,包括常量指针;指向常量的指针和声明const的引用都为**底层const** 顶层const(top-level const)表示指针本身是个常量int* const ptr=&m; 此时指针不可以发生改变,但是 阅读全文
摘要:
# 26.数组名和指针(这里为指向数组首元素的指针)区别? - 二者均可通过增减偏移量来访问数组中的元素。 - 数组名不是真正意义上的指针,可以理解为常指针,所以数组名没有自增、自减等操作。 - **当数组名当做形参传递给调用函数后,就失去了原有特性,退化成一般指针,多了自增、自减操作,但sizeo 阅读全文
摘要:
# 23.define宏定义和const的区别 **编译阶段** - define是在编译的**预处理**阶段起作用,而const是在编译、运行的时候起作用 **安全性** - define只做替换,不做类型检查和计算,也不求解,容易产生错误,一般最好加上一个大括号包含住全部的内容,要不然很容易出错 阅读全文
摘要:
# 24.C++中const和static的作用 **static** ●不考虑类的情况 ○隐藏。所有不加static的全局变量和函数具有全局可见性,可以在其他文件中使用,加了之后只能在该文件所在的编译模块中使用 ○默认初始化为0,包括未初始化的全局静态变量与局部静态变量,都存在全局未初始化区 ○静 阅读全文
摘要:
# 22.C++中struct和class的区别 **相同点** - 两者都拥有成员函数、公有和私有部分 - 任何可以使用class完成的工作,同样可以使用struct完成 **不同点** - C中struct是没有权限的设置的,struct成员权限默认是公有的,且struct中只能是一些变量的集合 阅读全文
摘要:
# 20.C++和C语言的区别 - C++中new和delete是对内存分配的运算符,取代了C中的malloc和free。 - 标准C++中的字符串类取代了标准C函数库头文件中的字符数组处理函数(C中没有字符串类型)。 - C++中用来做控制态输入输出的iostream类库替代了标准C中的stdio 阅读全文
摘要:
# 21.C++与Java的区别 **语言特性** - Java语言给开发人员提供了更为简洁的语法;完全面向对象,由于JVM(Java虚拟机)可以安装到任何的操作系统上,所以说它的可移植性强 - Java语言中没有指针的概念,引入了真正的数组。不同于C++中利用指针实现的“伪数组”,Java引入了真 阅读全文