面试训练海涛56题
来源:互联网 发布:f313战斗机知乎 编辑:程序博客网 时间:2024/04/28 13:14
问题(16):运行如下的C++代码,输出是什么?
class A{public: virtual void Fun(int number = 10) { std::cout << "A::Fun with number " << number; }}; class B: public A{public: virtual void Fun(int number = 20) { std::cout << "B::Fun with number " << number; }}; int main(){ B b; A &a = b; a.Fun();}
思路;开始一眼看出这题很基本当然 虽然是a是 A类的引用,但是确指向的是类B。这里a.Fun()由于是虚函数 通过虚函数指针在虚函数表里面找到 fun函数
所以输出B:Fun with number没有问题,但是至于函数里面的形式参数的话,我就拿不准了。
海涛日志里面分析的十分透彻,应该输出10
为什么你,涛哥里面说 因为缺省参数实在编译期间处理的,编译期间 A a是A类,但在运行中,虚函数动态的指向B类的fun函数,但是number的值为10
因此 输出
B::Fun with number 10运行如下的C代码,输出是什么?
char* GetString1(){ char p[] = "Hello World"; return p;} char* GetString2(){ char *p = "Hello World"; return p;} int _tmain(int argc, _TCHAR* argv[]){ printf("GetString1 returns: %s. \n", GetString1()); printf("GetString2 returns: %s. \n", GetString2()); return 0;}数组p[]为函数的局部变量,退出函数空间立即回收
*p是字符串常量存放在常量数据区,为全局的
因此 GetString1 returns:一串乱码
GetString2 returns:Hello World
问题(19):运行下图中C代码,输出的结果是什么?
int _tmain(int argc, _TCHAR* argv[]){ char str1[] = "hello world"; char str2[] = "hello world"; char* str3 = "hello world"; char* str4 = "hello world"; if(str1 == str2) printf("str1 and str2 are same.\n"); else printf("str1 and str2 are not same.\n"); if(str3 == str4) printf("str3 and str4 are same.\n"); else printf("str3 and str4 are not same.\n"); return 0;}
str1,str2为数组 要为其分配存储空间,当然地址不同
“hello world”为字符串常量,存放在常量数据区,当然*str3,和*str4指向的地址相同。它在内存中只有一个拷贝
- 面试训练海涛56题
- 面试训练海涛54题
- 面试训练海涛53题
- 何海涛:《剑指Offer:名企面试官精讲典型编程题》 之二维数组中的查找
- 何海涛博客【算法题】
- 九度oj 第3题 跳台阶 ----何海涛:《剑指Offer:名企面试官精讲典型编程题》
- 九度oj 第6题 变态跳台阶 何海涛:《剑指Offer:名企面试官精讲典型编程题》
- 何海涛——《剑指Offer:名企面试官精讲典型编程题》一书中IT名企经典面试题
- 何海涛——《剑指Offer:名企面试官精讲典型编程题》一书中IT名企经典面试题
- 编程技术面试的五大要点 文/何海涛
- 九度oj 第1题 二维数组中的查找 何海涛:《剑指Offer:名企面试官精讲典型编程题》
- 九度oj 第3题 旋转数组的最小数字 何海涛:《剑指Offer:名企面试官精讲典型编程题》
- 求解(树的子结构问题-何海涛100题)
- 技术面试脑力训练
- 面试训练二维数组
- 面试训练替换空格
- 面试训练排序
- 面试训练打印数组
- 【php】对PHPExcel一些简单的理解
- C#中两个listBox双击与拖放共存的一种实现【转】
- PHP分页类Page
- Find and Retain Passionate Problem Solvers
- Android的多媒体核心OpenCore
- 面试训练海涛56题
- MD5 算法!
- 把一组数按(负,零,正)的顺序排序,时间复杂度O(n)
- DNS迭代查询,递归查询
- 有关QT对Excel的操作
- 小心pthread_cond_signal和SetEvent之间的差异
- java 断点续传学习历程【struts2下载配置】
- 双色球助手软件决定不与360软件共存,有它没我,有我没它
- 关于gtk的GCond