C++面试
C++面试
c++面试100题
1、封装多态继承
2、数据集合
3、
4、便于外部文件访问
5、只能通过对象访问
6、通过类名
7、构造函数、析构函数、拷贝构造函数、拷贝复制函数
8、将一个对象复制给新建的对象
9、没有返回值
10、类的对象中有指针,防止多个指针指向同一块内存
11、
12、类成员是const类型、类成员是引用?
13、用const修饰的对象,只能访问const函数,不能访问类的普通成员函数
14、只能在一个编译单元中使用
15、通过对象访问成员函数,函数访问非公有成员
16、被abstract修饰的类。抽象类不能实例化,只能被子类继承,子类可以实例化。【类中只有抽象函数的类叫做抽象类。抽象类不能实例化,只能被子类继承,子类可以实例化。】
17、实现类对象的运算符操作
18、【. -> ::】
19、友元
20、使用友元。
21、复制运算符简单拷贝,没有涉及内存拷贝。拷贝构造函数可以对内存进行拷贝
22、删除对象。局部类对象变量释放内存。
23、通过静态变量
24、友元对象可以访问类的私有成员
25、初始化列表的初始化顺序
26、
27、public、protected、private
28、前面指向的内存内容不能更改,可以更改指针指向的内存地址。后面指针指向的地址不能更改,地址对应内存里的内容可以更改。
29、是的
30、两个函数同名,实现函数功能不同,叫做函数重载。虚函数父类和子类函数同名,子类同名函数实现不同功能。区别在于,函数重载在同一个类中。虚函数是在基类和派生类中。
31、可以。类可以实现多种重载
32、将函数声明成静态函数。
33、前面加virtual
34、对
35、对
36、
37、是指针的大小。类占据一个内存空间
38、前面删除一个数据类型的内存。后面删除一段连续的内存
39、需要。构造子类时会构造一个父类对象。
40、优点:减小代码规模。
41、栈先进后出。栈在cpu内存中,资源少,执行速度快。堆在外部内存中,资源多。
42、类的构造函数在声明类的时候被调用。类的析构函数在对象资源被什邡市调用。都是自动调用的。
43、
44、可以根据需要实现特定的功能
45、虚拟函数可以在派生类中被实现其他函数功能。普通函数不能在派生类函数中被实现其他功能。内联函数不能被声明为虚函数。构造函数不能被声明为虚函数。不然可能出现父类对象没有被实例化,就实例化子类对象。
46、先调用构造函数后调用析构函数。当在释放派生类对象时,先执行基类的析构函数。如果析构函数不是虚函数,则子类对象资源不能被释放。
47、类的普通成员函数和友元函数
49、在构造函数中初始化和使用初始化列表初始化
50、被常引用修饰的变量或者对象不会被更改时可以使用常引用。使用常引用避免内存拷贝,消耗资源。
51、引用是变量的别名。指针一个指向的是内存的地址的变量。
52、
54、全局变量在数据区中,在堆中。局部变量在站中,局部变量在使用前需要初始化。
55、栈溢出原因,局部变量申请特别大的空间。堆溢出:申请的资源没有释放
56、构造函数
57、
58、浮点型
59、使用引用符号
60、C语言使用宏定义。c++使用内联函数
61、不是
62、是指针的大小。类占据一个内存空间
63、数组名是常量指针,不能被更改或执行++操作。指针变量可以被更改或执行++操作。数组名和指针都可以指向同一片内存。
64、按值传递、按指针传递、按引用传递
65、栈上分配和堆上分配
66、在C++语言中使用extern "C"修饰C代码,可以使C代码按照C语言方式编译。实现C代码和C++代码的联合编译。
67、
68、
69、
70、#include <>是从优先从系统文件中查找文件 #include ""是优先从工程文件中查找文件
71、
72、
73、宏只是简单替换,注意副作用
74、数组在做函数实参的时候会转变为什么类型,写错了吧,应该是数组在做函数形参的时候会转变为什么类型。会转变成指针类型。
75、
76、1个、4个、4个、8个
77、strcpy只能拷贝字符串,字符串需要’\0’结束符。memcpy可以拷贝字符串和内存。
78、define定义宏
79、字符常量没有结束符。字符串常量有结束符。sizeof长度相差1个。
80、全局变量优点全局可以访问。缺点:代码没有高内聚,低耦合。
81、static应用,修饰函数,该函数只能在该编译单元中被访问,作用:避免被其他文件访问到。
static修饰变量,变量为局部变量,会被编译器自动初始化。作用:不会被其他文件访问到。
82、const修饰函数。const在函数头修饰,返回的数据是不能被修改的。
const在函数尾。函数形参是不能被更改的。另外可以变成重载函数。
const修饰变量。修饰变量,该变量不能被修改。
const在类中修饰成员函数。const函数不能访问类的成员变量和成员函数。
类的成员函数可以访问const函数。
const修饰对象。该对象只能访问类的const函数
83、指针是指向内存地址的变量。可以使用指针访问内存。指针指向资源被释放后需要被置为空指针。指针可以为空指针。
84、常指针指的是使用const修饰的指针。指向常变量的指针形式为const *p,指向的变量不能被修改;可以指向其他内存。
85、函数指针是指向函数的指针。指针函数是返回类型为指针的函数。
87、debug版本用于调试,可以输出调试信息。release版本用于发布,会被优化。
88、1、指针传入函数,可以在函数中被修改值。2、传参避免传入整个数据,只传入数据的地址,避免大量拷贝。3、指针指向函数,实现指针调用不同函数。
89、static函数只能在当前编译单元中被访问。普通函数可以被其他编译单元访问
90、union会将变量成员按照字节对齐。
91、class中成员可以设置访问权限,struct中成员都是公共权限。
92、枚举类型中的数据类型为int型。
93、判断,当括号中为假时,程序停止抛出异常。
94、不可以,除非局部变量在单独的作用域中。
96、占用内存资源多的对象和变量传递时,避免数据拷贝消耗资源,需要使用引用。并且数据或对象不想被修改时,使用常引用。
97、分开便于函数被其他编译单元访问
98、
99、
100、智能指针不需要手动释放
101、
102、虚函数、派生类
103、
104