c++基础知识
C++ 是一种中级言语,它是由 Bjarne Stroustrup 于 1979 年在贝尔实验室最先设想开辟的。C++ 进一步扩大和完美了 C 言语,是一种面向对象的顺序设想言语。C++ 可运转于多种平台上,如 Windows、MAC 操纵系统以及 UNIX 的种种版本。C言语是面向历程的言语,C++ 在此基础上增加了面向对象以及泛型编程机制,因而 C++ 更适合大中型顺序的开辟。然则,C++ 并没有捐躯效力,假如不运用高等特性,它的效力和C言语几乎没有差别。
引荐进修:c++手册教程
以下为人人整理了c++的基础知识,愿望对列位有协助。
1、C++中的基础数据范例有哪些?
答:3种范例:整数型、浮点型、void型。
2、整型有几种情势,种种情势有什么辨别?
答:整型包括整数,字符和布尔值的算术范例,依据润饰符细分为13种情势,其重要辨别体现在范例名、长度、示意局限几个方面。
3、C++中有哪些常量?
答:6种常量:整型常量、浮点型常量、字符型常量、字符串常量、转义字符常量、地点常量。
4、常量与变量有哪些辨别?
答:(1)常量的值不可转变,变量的值可以转变;(2)常量在定义时必需初始化,变量在定义可以不初始化;(3)常量不可以寻址,其地点只可给予常量指针,变量可以寻址;(4)常量有较高的编译实行效力;
5、操纵符有哪些分类?
答:(1)根据操纵数辨别:一元操纵符、二元操纵符、三元操纵符;(2)根据功用辨别:算术操纵符、关联操纵符、逻辑操纵符、位操纵符、赋值操纵符、自增自减操纵符、箭头操纵符、前提操纵符、sizeof操纵符、逗号操纵符。
6、自增自减前操纵与后操纵的辨别?
答:前自增自减操纵的优先级大于赋值运算符(=),后自增自减操纵的优先级小于赋值运算符,后自增自减操纵后表达式的值不会发作转变。
7、指针和变量的自增自减有什么差别?
答:变量的自增自减是转变变量的值,指针的自增自减是转变指针的指向地点。
8、什么是左值和右值?
答:变量是左值,可以在赋值语句的左侧;数字字面值是右值,不能被赋值。
9、变量有哪几种初始化体式格局?
答:2种:直接初始化;复制初始化。直接初始化越发天真而且实行效力更高。
10、变量的声明和定义是什么?
答:变量声明的重要目标是表明变量的范例和称号;变量定义的重要目标是分派存储空间,它们有雷同的时刻。
11、C++中有哪几种作用域?
答:3种:全局作用域、部分作用域、语句作用域。
12、变量有哪几种存储范例?
答:4种:自动范例、静态范例、寄存器范例、外部范例。
13、C与C++有什么辨别?
答:C言语是组织化的编程言语,它是面向历程的,斟酌的是完成历程;C++是面向对象的,斟酌的是全部顺序模子。
14、宏定义与操纵符的辨别?
答:宏定义是C++的预处置惩罚敕令之一,它是一个替代操纵,不做盘算和表达式求解,不占内存和编译时候。
15、虚函数与纯虚函数的特性?
答:虚函数必需是基类的非静态成员函数,其接见权限可以是protected或public;纯虚函数是虚函数的一个子集,含有纯虚函数的类就是抽象类,它不能生成对象。
16、怎样运用纯虚函数?
答:纯虚函数用来定义没有意义的完成,用于抽象类中须要交给派生类细致完成的要领。
17、什么是指针?
答:指针是用来存储内存地点的变量,它指向单个对象的地点,除了void指针范例外,指针的数据范例与所指向地点的变量的数据范例须要保持一致。
18、const对象的指针和const指针的辨别?
答:const指针自身的值不可转变,但可以运用该指针修正它所指对象的值;const变量的指针不可以修正所指向的const变量的值,但指针自身可以被从新赋值。
19、数组指针与指针数组的辨别?
答:数组指针是一个指针变量,它指向一个数组;指针数组是一个只包括指针元素的数组,它的元素可以指向雷同范例的差别对象。
20、什么是函数指针?
答:函数指针就是指向函数的存储空间地点的指针,可以对函数指针举行赋值并经由过程函数指针来挪用函数。
21、援用与值通报的辨别?
答:值通报通报的是一个值的副本,函数对形参的操纵不会影响实参的值;援用通报通报的是援用对象的内存地点,函数对形参的操纵会影响实参的值,实参的值会跟着形参的值得转变而转变。
22、指针与援用的辨别?
答:(1)援用无需解援用,指针须要解援用;(2)援用在定义时被初始化一次,以后不可变,指针可变;(3)援用不能为空,指针可以为空;(4)顺序为指针变量分派内存地区,而援用不须要分派内存地区,所以指针自增操纵是指针变量的自增,援用自增操纵是变量值的自增。
23、面向对象与面向历程的辨别?
答:面向历程是一种以历程为中间的编程头脑,以算法举行驱动;面向对象是一种以对象为中间的编程头脑,以音讯举行驱动。面向历程编程言语的构成:顺序=算法+数据;面向对象编程言语的构成:顺序=对象+音讯。
24、面向对象的特性是什么?
答:面临对象的3个要素:封装,继续,多态。面向对象中所有对象都可以归属为一个类。
25、类与组织体有什么辨别?
答:(1)组织体存储在栈中,类的实例化可以存储在栈中,也可以存储在堆中;(2)组织体的实行效力比类要高;(3)组织体没有析构函数,类有析构函数;(4)组织体不可以继续,类可以继续。
26、怎样接见静态成员?
答:静态成员可以经由过程类名直接挪用,不须要竖立类的实例,也可以经由过程类的实例举行挪用,但底层仍然是经由过程类名挪用的,所以不引荐这类挪用要领。类的静态要领只能接见类的静态成员。
27、什么是多态?
答:多态就是将子类对象赋给父类变量,父类变量在编译期和运转期表现出差别的特性。
28、在C++中怎样完成多态?
答:多态有动态多态、静态多态、函数多态和宏多态等,我们常说的多态指的是动态多态,它是基于继续机制和虚函数来完成的。
29、派生类与基类的转换?
答:派生类老是可以转换为基类的援用范例;基类转换为派生类须要在肯定平安的状况下运用强迫转换来完成。
30、什么是虚成员,有什么作用?
答:虚函数的作用是完成动态联编,顺序发明虚函数名前的关键字virtual后,会自动将其作为动态联编处置惩罚,即在顺序运转时动态的挑选适宜的成员函数。
31、C++掩盖与隐蔽概述?
答:(1)掩盖指的是在子类和父类中,存在函数名、参数均雷同的函数,而且父类的该函数为虚函数;(2)隐蔽指的是在子类与父类中,存在函数名雷同、参数差别的函数,此时不管父类函数是不是为虚函数,父类函数都会被被隐蔽,或许存在函数名、参数均雷同的函数,此时只要当父类函数不为虚函数时,父类函数才会被隐蔽。
32、什么是深拷贝与浅拷贝?
答:假如一个类具有资本,当这个类的资本发作复制历程时,就叫做深拷贝;假如对象存在资本但在复制历程当中并未复制资本就是浅拷贝。
33、什么是拷贝组织函数,什么时刻挪用?
答:拷贝组织函数由编译器挪用来完成一些基于统一类的其他对象的构建及初始化。有3种状况会运用拷贝组织函数:(1)一个对象以值通报的体式格局传入函数体;(2)一个对象以值通报的体式格局从函数返回;(3)一个对象须要经由过程别的一个对象举行初始化。
34、什么是范例转换组织函数?
答:一个类的组织函数只要一个参数,该参数范例不为该类范例而是其他范例,这个组织函数就被称为范例转换组织函数,它可以用来处置惩罚差别域的统一数据值。
35、C++支撑参数个数不肯定的函数吗?
答:C++可以经由过程隐蔽参数机制支撑参数不肯定的函数。
36、什么是内联函数?
答:在类声明的内部声明或定义的成员函数叫做内联(inline)函数,在内联函数内不允许有轮回语句和switch语句。
37、援用形介入非援用形参的辨别?
答:援用形参是将参数变量的地点来举行通报,可以经由过程函数对形参的挪用来修正实参的值。
38、运用援用形参有什么问题?
答:挪用非const范例的援用形参,实参必需不是const范例,两者范例应该一致;当挪用一个有const援用的形参函数时,假如实参不是一个变量或许范例不婚配时,函数会竖立一个无名的暂时变量用来存储实参的值,并把这个形参作为该暂时变量的援用。
39、指针形参和援用形参有什么辨别?
答:指针形参是指函数的参数是指针,它不会像援用形参那样经由过程函数挪用影响实参的值,然则挪用后它会修正实参的对象。顺序中发起只管少运用指针形参,如许会使顺序的可读性下落。
40、什么是静态函数?怎样运用静态函数?
答:静态函数是用static润饰符润饰的函数,静态函数没有this指针,只能接见静态变量。类中假如函数挪用的效果不会接见或许修正任何对象数据成员,如许的成员声明为静态成员函数比较好。
41、函数重载及作用域?
答:函数重载是指在雷同作用域下,具有雷同称号而差别参数列表的多个函数。
42、函数重载时怎样完成实参的范例转换?
答:在函数重载婚配时,先经由过程规范转换来完成婚配,假如不可,再经由过程类范例转换来完成婚配。
43、什么是函数模板?
答:函数模板手艺是指运用了模板手艺定义了参数化范例的非成员函数,这使得顺序可以运用差别的参数范例挪用雷同的函数。
44、什么是类模板?
答:类模板是运用模板手艺的类,形貌了可以治理其他数据范例的通用数据范例。类模板手艺一般用于竖立包括其他范例的容器类(行列、链表、客栈等)。
45、什么是泛型编程?
答:泛型编程就是以独立于特定类完成的体式格局编写代码,针对差别的范例供应通用的完成。
46、C++怎样完成泛型编程?
答:C++中泛型编程的完成是运用C++中的模板手艺来完成的,重如果设想函数模板和类模板。
以上就是c++基础知识的细致内容,更多请关注ki4网别的相干文章!