C++静态成员:类的共享变量与函数
这篇文章介绍了C++中静态成员(变量和函数)的概念、用法及注意事项。 静态成员用于解决普通成员变量无法共享数据的问题:静态成员变量(`static`修饰)属于整个类,存储在全局数据区,所有对象共享,需在类外初始化(如`int Student::count = 0;`),可通过类名或对象访问(如`Student::count`)。示例中`Student`类用静态变量`studentCount`统计对象数量,构造时加1、析构时减1,展示共享特性。 静态成员函数同样用`static`修饰,属于类而非对象,无`this`指针,只能访问静态成员,可通过类名或对象调用(如`Student::getCount()`)。 注意事项:静态成员变量需类外初始化;静态函数不能直接访问非静态成员;避免过度使用静态成员以降低耦合。 总结:静态成员实现类共享数据与工具函数,提升数据一致性,适用于全局状态(如计数器),但需合理控制使用场景。
阅读全文一文读懂C++命名空间:避免命名冲突的小技巧
C++中不同文件或模块定义同名元素会引发命名冲突,编译器无法区分。命名空间通过“文件夹”式隔离解决此问题,用`namespace 名称 { ... }`定义,将代码分组,避免同名元素干扰。使用方式有二:直接用`命名空间::元素名`访问具体元素;或`using namespace 命名空间`引入整个命名空间(头文件慎用,源文件谨慎使用以避免全局污染)。进阶技巧包括匿名命名空间(仅当前文件可见,保护私有细节)和嵌套命名空间(多层分组,C++17支持简化写法)。使用建议:按功能划分命名空间、避免过度嵌套、头文件禁用`using namespace`,优先用作用域解析符。合理使用命名空间是模块化C++代码的基础。
阅读全文原来这么简单:C++引用(&)的基础用法
C++引用是变量的“别名”,与原变量共享内存,修改引用即直接修改原变量。基础用法:定义时必须绑定已存在变量(不可未初始化或绑定临时常量);作为函数参数可避免传值拷贝,直接修改变量(如交换函数);返回引用时不可返回局部变量(函数结束后变量销毁,导致未定义行为);const引用(常量引用)可绑定临时变量(如`const int &c = 5`),且防止通过引用修改原变量。 注意事项:引用必须初始化;不可返回局部变量引用;仅const引用可绑定临时变量。引用与指针区别:引用需初始化且不可变,指针可空、可改指向;引用无需解引用,更简洁安全,适合参数/返回值;指针灵活,用于动态内存管理。核心记住:引用是变量别名,高效且安全,需注意初始化和返回规则。
阅读全文