C++整理11_成员
类::成员
1. 静态(static)成员
- 概念:静态成员是属于类的,而不是属于类的某个特定对象的。所有对象共享同一个静态成员。
- 语法:
class MyClass { public: static int staticVar; };
- 特点:静态成员变量在整个程序范围内只有一个实例,所有对象对它的修改都会影响到其他对象。
示例代码:
#include <iostream>
class MyClass {
public:
static int staticVar;
void staticFunction() {
std::cout << "Static function" << std::endl;
}
};
int MyClass::staticVar = 10;
void function() {
MyClass::staticFunction(); // 调用静态成员函数
std::cout << MyClass::staticVar << std::endl; // 访问静态成员变量
}
int main() {
function(); // 静态成员函数可以在没有对象的情况下调用
return 0;
}
2. 静态成员的生命周期
- 概念:静态成员的生命周期从程序开始运行时开始,直到程序结束时结束。
- 特点:静态成员的初始化在main函数执行之前完成,且只初始化一次。
3. 静态成员的调用规则
- 概念:静态成员可以通过类名直接访问,也可以通过对象访问。
- 特点:即使在没有创建类的对象的情况下,也可以访问静态成员。
4. 常成员
- 概念:常成员函数保证不会修改对象的状态。
- 语法:
class MyClass { public: void function() const { // 只读操作 } };
- 特点:常成员函数可以在常对象上调用,也可以在非常对象上调用。
5. 常数据成员
- 概念:常数据成员的值一旦初始化后不能被修改。
- 语法:
class MyClass { public: MyClass(int val) : constDataMember(val) {} const int constDataMember; };
- 特点:常数据成员必须在构造函数的初始化列表中初始化。
6. 初始化参数列表
- 概念:初始化参数列表用于初始化非静态成员变量。
- 语法:
class MyClass { public: MyClass(int val) : memberVar(val) {} private: int memberVar; };
- 特点:使用初始化参数列表可以提高效率,特别是对于非POD类型的成员变量。
7. 常函数成员
- 概念:常函数成员用
const
关键字修饰,表示该函数不会修改对象的状态。 - 语法:
class MyClass { public: void function() const { // 只读操作 } };
- 特点:常函数成员可以在常对象上调用。
8. this指针
- 概念:
this
指针是一个指向当前对象的指针,用于区分成员函数中的局部变量和类的成员变量。 - 语法:
class MyClass { public: void function(int val) { this->memberVar = val; // 使用this指针区分 } private: int memberVar; };
- 特点:在静态成员函数中,
this
指针是不允许使用的,因为静态成员函数不依赖于具体的对象。
以上是类成员的一些基本概念和用法,包括静态成员、常成员、初始化列表和this
指针的使用。这些特性使得C++类更加灵活和强大。
作者:
hwaityd
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。