- Struct 和class 的区别。
答:struct是一种结构体类型的标志,它和C++中的Class很相似。
C++中两者的唯一区别在于:Class定义中默认情况下的成员都是私有的,而结构Struct 定义中默认情况下的成员都是公有的。
在C中,结构中不能有成员函数,而在C++中可以有成员函数.
- 是不是一个父类写了一个virtual 函数,如果子类覆盖它的函数不加virtual ,也能实现多态?
答:virtual修饰符会被隐形继承的。private 也被继承,只是派生类没有访问权限而已。virtual可加可不加。子类的空间里有父类的所有变量(static除外)。同一个函数只存在一个实体(inline除外)。子类覆盖它的函数不加virtual ,也能实现多态。在子类的空间里,有父类的私有变量。私有变量不能直接访问。
13. *p++ 自增p 还是p 所指向的变量?
答:
后缀++ 和– 操作符本质上比前缀一目操作的优先级高, 因此*p++ 和*(p++) 等价, 它自增p 并返回p 自增之前所指向的值。
要自增p 指向的值, 使用(*p)++, 如果副作用的顺序无关紧要也可以使用++*p。
14. #pragma 是什么, 有什么用?
答:
#pragam 指令提供了一种单一的明确定义的 “救生舱”, 可以用作各种 (不可移植的) 实现相关的控制和扩展:
源码表控制、结构压缩、警告去除 (就像 lint 的老 /* NOTREACHED */注释), 等等
15.“#pragma once” 是什么意思?我在一些头文件中看到了它。
答:
这是某些预处理器实现的扩展用于使头文件自我识别; 它跟#ifndef技巧等价, 不过移植性差些。
16. 进程间通信的方式有?
答:
进程间通信的方式有 共享内存, 管道 ,Socket ,消息队列 , DDE等