常见的面试C++问题
来源:互联网 发布:linux创建新文件 编辑:程序博客网 时间:2024/05/23 13:03
(二)成员的默认访问权限。class 的成员默认是 private 权限,struct 默认是 public 权限。
除了这两点,class 和 struct 基本就是一个东西。语法上没有任何其它区别
2). 一个中断服务子程序中会访问到的非自动变量(Non-automatic variables)
3). 下面的函数有什么错误:
int square(volatile int *ptr)
{
return *ptr * *ptr;
}
2). 是的。尽管这并不很常见。一个例子是当一个中服务子程序修改一个指向一个buffer的指针时。
3). 这段代码有个恶作剧。这段代码的目的是用来返回指针*ptr指向值的平方,但是,由于*ptr指向一个volatile型参数,编译器将产生类似下面的代码:
int square(volatile int *ptr)
{
int a,b;
a = *ptr;
b = *ptr;
return a * b;
}
由于*ptr的值可能被意想不到地该变,因此a和b可能是不同的。结果,这段代码可能返回不是你所期望的平方值!正确的代码如下:
long square(volatile int *ptr)
{
int a;
a = *ptr;
return a * a;
}
2.设置变量的存储域(全局数据区)。
(1)在全局数据区内分配内存
(2)如果没有初始化,其默认值为0
(3)该变量在本文件内从定义开始到文件结束可见
2.定义局部静态变量:在局部静态变量前面加上关键字static,该局部变量便成了静态局部变量。静态局部变量有以下特点:
(1)该变量在全局数据区分配内存
(2)如果不显示初始化,那么将被隐式初始化为0
(3)它始终驻留在全局数据区,直到程序运行结束
(4)其作用域为局部作用域,当定义它的函数或语句块结束时,其作用域随之结束。
3.定义静态函数:在函数的返回类型加上static关键字,函数即被定义成静态函数。静态函数有以下特点:
(1) 静态函数只能在本源文件中使用
(2)在文件作用域中声明的inline函数默认为static
说明:静态函数只是一个普通的全局函数,只不过受static限制,他只能在文件坐在的编译单位内使用,不能呢个在其他编译单位内使用。
在C++语言中新增了两种作用:定义静态数据成员或静态函数成员
1.定义静态数据成员。静态数据成员有如下特点:
(1)内存分配:在程序的全局数据区分配
(2)初始化和定义:静态数据成员定义时要分配空间,所以不能在类声明中初始化。
2.静态成员函数。静态成员函数与类相联系,不与类的对象相联系。静态成员函数不能访问非静态数据成员。原因很简单,非静态数据成员属于特定的类实例,静态成员函数主要用于对静态数据成员的操作。
(1)静态成员函数没有this指针。
- 常见的面试问题
- 常见的面试问题
- 常见的面试问题
- 面试常见的问题
- 面试中常见的C/C++问题集锦
- ABAPER面试常见的问题
- 常见的英文面试问题
- C# 常见的面试问题
- 面试中常见的问题
- iOS面试常见的问题
- 常见的面试C++问题
- 常见的面试问题总结
- 多线程常见的面试问题
- 一些常见的面试问题
- PHP常见的面试问题
- JavaEE面试常见的问题
- mysql的常见面试问题
- 面试常见的排序问题
- Net4.0的网站在IE10、IE11出现“__doPostBack未定义”的解决办法。
- Xcode 之自己编译静态库
- 苹果appstore审核期间,哪几件事是必须了解的?
- Android 异常 -1 column '_id' does not exist
- aerospike参考资料
- 常见的面试C++问题
- RS485驱动
- popwindow与editText 软键盘弹出问题
- HoneyComb3.0技术系列之StackView
- 内置函数map.fitler.reduce,偏函数,zip
- Programming Reflection
- poj3723最小生成树
- 什么是DOM?DOM和JavaScript的关系[web开发]
- More Effective C++ 第五部分 技术