有些细枝末节的东西面试可能会问?
数据类型:
bool(1bit),char(1byte,8bit,0-255),int(4bytes)
float(4bytes),double(8bytes),void,wchar_t(4bytes)
修饰:signed unsigned(不改变字节数)
short(二分之一)
long(加倍)类 class
static: 修饰局部变量,可以将它变成全局变量
修饰全局变量,可以让他在文件外无效
修饰类,可以让类的所有对象共享public private protected的区别
private : 外部不可访问 不可查看
protected: 子类可以访问- 类的构造器,三种继承方式:三种访问属性的变量继承也不同
类的构造器:public一个与类同名的函数
静态成员:生成一个实例之后,只有一个副本,经常用于统计生成了几个这样的类
例如:static int a =1;静态成员函数:没有对象也可以调用,他本身只能调用静态成员
也就是上面说的static int a;析构函数:~开头,不会返回任何值,故而一定是void类型,也没有任何入参
在对象实例销毁的时候执行该函数- 虚函数:子类的实例调用函数时,会忽略虚函数,转而调用子类中的同名函数。
纯虚函数:不准备调用基类中的这个函数,想什么都不写
C++引用 C++ refrence
- 不可以为空
- 引用不可以变更,也就是说,引用一旦指向一个变量就不可以更改了,
而指针可以随时更改指向的对象 - 引用在创建的时候就要初始化
例如: int& r = i;//这样r就指向了i
通常,引用用来作为函数的入参或者返回
好处是:
- 如果函数运行期间,形参的值改变了,并不会回传
给实参。如果入参使用引用,那么改变形参的量也可
以改变实参。(也就是说,如果引用的对象发生改变,不会影响函数运行。而如果函数运行完毕,会改变引用的对象。这是一种单向的工作方式,更稳定,用指针就不会有这种优点)
// vector初始化
vector<int> vec_1 = {2, 5, 9};
// reverse vector
reverse(vec_1.begin(), vec_1.end());
// 遍历vector
for(auto k:vec_1){
cout<<k<<endl;
}
for(auto bg = vec_1.begin();bg!=vec_1.end();bg++){
cout<< *bg<<" ";
}
// 指针,数组指针,指针数组
// 空指针
int* ptr1 = nullptr;
int shuzu[3] = {2, 5, -1};
// 数组指针
int* shuzu_ptr = shuzu;
// cout<< shuzu_ptr << endl;
// 指针数组
int* ptr_shuzu[3] = {shuzu_ptr};
// cout << *ptr_shuzu[0] << endl;