面试问题

3 篇文章 0 订阅

面试问题

  1. const 和 static的应用场景

  2. static函数

    1. 普通static函数

    2. static成员函数
      类中的成员函数能直接访问static成员变量,但是static成员函数只能访问static成员变量。
      因为static成员变量在类中共享的,所以不能在构造函数中初始化它。
      static成员变量和成员函数一样,都不是绑定在某一个具体的对象上,而是在这个类里面共享的。static成员函数没有this指针,所以不能访问类里面的其他成员,因此该函数也不能声明为const。
      如果static变量是public,那么可以通过域操作符(scope operator)直接使用。r = Account::rate(); 这种情况,类名相当于一个命名空间的作用。

  3. 指针和数组名的区别

根据cppreference.com有一句话:

String literals have static storage duration, and thus exist in memory for the life of the program.

即常量字符串(string literals),指的是双引号(“ ”)里面的内容,被存储在静态区,生命期为整个程序

String literals can be used to initialize character arrays. If an array is initialized like char str[] = “foo”;, str will contain a copy of the string “foo”.

如果用常量字符串去初始化一个字符数组(注意,是数组),那么会利用数组开辟的空间来存储这个string literals,也就是说这时候发生了拷贝。
在这里插入图片描述

 char* pStr = "Hello world! "; // Hello world的类型是const char* 在内存中属于const segment
 pStr[1] = 'A'; //编译不会发生错误但是,会抛出一个异常(属于一个bug)原因在于想尝试去修改const char的内存是不允许的!
//因此在这种情况下通常将 char* pStr --> const char* pStr
const char* pStr2 = "Hello world! ";
pStr[1] = 'A'; //直接报错

//用数组存储常量字符串
char Arr[] = "Hello world! ";
Arr[1] = 'A';
cout << A[1] << endl; //没问题!
  1. 字符串指针
  2. delete和delete[]的区别
  3. sql中index的作用
  4. 对singleton的了解
  5. B-Tree
  6. 如何在控制空间复杂度的情况下设计程序

另外要补充学习的部分

  1. SQL方面的知识,面试平安科技和Morgan Stanley都提到了这方面的知识。
  2. 多线程
  3. B树(B—,B+),红黑树
  4. 操作系统
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值