问一个面试题: C中的static用法和C++的有什么不一样?该如何处理
问一个面试题: C中的static用法和C++的有什么不一样?
找工作遇到的面试题!(一家电信设备制造商)
我的回答是,C++里面的static可以用于class/struct, 修饰静态变量或者静态函数。
但是考官没有给标准答案。
不知到还有什么其他区别呢?
想和大家一起讨论一下!大家给点意见哈!
------解决方案--------------------
C++中类的static成员在可以实现对象共享
------解决方案--------------------
类的成员static
------解决方案--------------------
static 不应该说是在c和c++下有什么不同吧要真说不同那就是在c++下多了一种语义, 就是在类中申明静态的成员函数和成员变量首先看看static的用法(基本常用的哈, 高深的我也不知道)
1. 用static申明静态局部变量, 这种变量只执行一次初始化, 以后你在使用就不会执行初始化代码了
2. 全局static函数和变量, 加了static申明的全局函数和变量会将该函数/变量的作用于限制在本文件内部。这样,虽然是全局的函数/变量,但是其他文件不可见不可使用,在c中可屏蔽一些名称冲突等。c++有了名称空间概念和类之后就用的比较少了吧。反正我很少这样用。
3. 申明类的静态成员函数/变量。
找工作遇到的面试题!(一家电信设备制造商)
我的回答是,C++里面的static可以用于class/struct, 修饰静态变量或者静态函数。
但是考官没有给标准答案。
不知到还有什么其他区别呢?
想和大家一起讨论一下!大家给点意见哈!
------解决方案--------------------
C++中类的static成员在可以实现对象共享
------解决方案--------------------
类的成员static
------解决方案--------------------
static 不应该说是在c和c++下有什么不同吧要真说不同那就是在c++下多了一种语义, 就是在类中申明静态的成员函数和成员变量首先看看static的用法(基本常用的哈, 高深的我也不知道)
1. 用static申明静态局部变量, 这种变量只执行一次初始化, 以后你在使用就不会执行初始化代码了
2. 全局static函数和变量, 加了static申明的全局函数和变量会将该函数/变量的作用于限制在本文件内部。这样,虽然是全局的函数/变量,但是其他文件不可见不可使用,在c中可屏蔽一些名称冲突等。c++有了名称空间概念和类之后就用的比较少了吧。反正我很少这样用。
3. 申明类的静态成员函数/变量。