类::成员
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
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理