C++面试题总结
kevin_org
业精于勤而荒于嬉,行成于思而毁于随。——韩愈
展开
-
C++面试题之问题归纳
基础知识点1.C与C++有什么区别,C++有哪些特征?说说多态是怎么实现的(C++内存模型)?2.构造函数可以是虚函数吗,为什么?3.析构函数可以是虚函数吗,什么时候必须为虚函数,为什么?4.子类析构要调用父类的析构函数吗?5.C++空类默认有哪些成员函数(提示6种)?6.什么情况下需要调用拷贝构造函数?7.类的静态成员与非静态成员有哪些区别?8.说说纯虚函数,虚函数,多态(虚指针,虚函数表),this指针9.说说堆和栈(内存布局,内核空间,用户空间)10.重载,重写(覆盖)与隐藏的区别原创 2020-09-11 18:19:14 · 529 阅读 · 0 评论 -
C++面试题之设计模式及设计原则
六大设计原则1)单一职责原则类的职责单一,对外提供一个功能,函数也支持;2)里氏替换原则任何抽象类的出现都可以用他的实现类进行替换。3)依赖倒置原则依赖于抽象,不要依赖具体实现,也就是针对接口编程4)接口隔离原则一个接口对外应该只提供一种对外功能,不应该把所有操作都封装到一个接口里。5)开闭原则对扩展开放,对修改关闭;//代码实现class AbstractCaculator{public: virtual int getResult() = 0; virtual void s原创 2020-09-11 18:15:08 · 2545 阅读 · 0 评论 -
C++编程题之新特性
1. 语言可用性的强化1)nullptr:本质还是0,但相对于NULL提供了类型;2)范围for;3)auto自动推导类型;4)迭代器遍历;5)继承构造与委托构造;6)override:修饰虚函数,编译器将检查基类的函数是否存在这样的虚函数;7)final:修饰类,表示该类不可继承;修饰虚函数,表示该函数不能被重载;8)四种类型转化static_cast:1)用于基础类型之间的转换,与C语言强制类型转换一样,没有安全类型检查;2)用于上行转换(子类转父类);const_cast:用原创 2020-09-11 17:45:10 · 267 阅读 · 0 评论 -
C++面试题之字符串改错
1. 字符串越界问题void test1(){ char string[10]; char* str1 = "0123456789"; strcpy(string, str1);}错误分析:[C代码可编译过]1)string不能作为变量使用,是C++中的string类库;2)str1是一个指向字符的指针,字符串所占长度为11,strcpy函数是将str1拷贝给string,但string大小只有10,str1大小为11,导致数组越界。void test2(){ char str[原创 2020-09-11 17:36:48 · 1276 阅读 · 0 评论 -
C++面试题之排序算法编程
//冒泡排序#include<iostream>using namespace std;void print(int arr[], int n){ for(int j= 0; j<n; j++) { cout<<arr[j] <<" "; } cout<<endl; } void BubbleSort(int arr[], int n){ for (原创 2020-09-11 17:29:24 · 350 阅读 · 0 评论 -
C++面试题之字符串编程
题目描述: 计算字符串最后一个单词的长度,单词以空格隔开。输入描述: 一行字符串,非空,长度小于5000。输出描述: 整数N,最后一个单词的长度。示例1: 输入: hello world 输出: 5#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){ char s[5000]; int count = 0; int index = 0; wh原创 2020-09-11 17:26:27 · 1580 阅读 · 0 评论