c++const、static的用法,面试题
C++中的const和static是两个关键字,用于修饰变量和函数。下面是关于const和static用法的准确回答,并附带一些拓展内容。
1. const的用法:
const用于修饰变量,表示该变量的值是不可修改的。使用const修饰的变量必须在声明时进行初始化,而且在后续的代码中不能修改该变量的值。
示例代码:
```cpp
const int MAX_VALUE = 100;
int main() {
MAX_VALUE = 200; //错误,const修饰的变量不能修改其值
return 0;
}
```
拓展内容:
- const修饰的变量在编译时就已经确定了其值,在程序运行过程中是不可修改的。这样可以提高程序的可读性和可维护性,避免意外修改变量的值。
- const对象在默认情况下只能调用const成员函数,这是因为const修饰的对象视为只读,不能修改其状态。
2. static的用法:
static用于修饰变量和函数,其具体的含义和作用略有不同。
-修饰变量:
static修饰的变量称为静态变量,也称为类变量。静态变量被所有同类型的对象所共享,属于类而不是对象。静态变量在类中只有一份拷贝,不会被重复创建。
示例代码:
```cpp
class MyClass {
public:
static int count; //静态变量声明
};
int MyClass::count = 0; //静态变量定义
int main() {
MyClass obj1;
MyClass obj2;
unt = 10;
unt = 20;
cout << unt << endl; //输出20
cout << unt << endl; //输出20
return 0;
}
```
-修饰函数:
static修饰的函数称为静态函数,也称为类函数。静态函数不依赖于任何对象,可以直接通过类名来调用,不需要创建对象的实例。
示例代码:
```cpp
class MyClass {
public:
static void print() {
cout << "Hello, I'm a static function." << endl;
}
};
static修饰的变量int main() {
MyClass::print(); //直接通过类名调用静态函数
return 0;
}
```
拓展内容:
-静态成员变量和静态成员函数在内存中只有一份拷贝,且不属于对象的一部分。
-静态成员变量必须在类外进行初始化,而且初始化只能在cpp文件中进行。
-静态成员函数不能访问非静态成员变量和非静态成员函数,只能访问静态成员变量和静态成员函数。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。