C++ cheatsheet

有些细枝末节的东西面试可能会问?
  • 数据类型:

    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;

原文地址:https://www.cnblogs.com/theodoric008/p/7968607.html