static 类成员 之我见

我认为学习C++/VC最好的方法,先求知模仿,然后为什么,再总结自己的见解来举一反三。
 
static 类成员用法:
1。static不是通过构造函数初始化,而是必须在类定义体外部定义,无须重复指定static关键字。(有的书上不能再标识static了)
2。因为static不是任意类对象的组成部分,所以没有this指针。
3。static成员函数不能被声明为虚函数,原因在《C/C++的数据区》中会涉及到。
4。static可以声明为任意类型。
5。设计一个不错的初始化例子,在MyTest类体中static double price;
体外    double MyTest::price = SetPrice();
 
 
 
一边学习一边在总结。
在C++中,定义`static`类成员分为定义`static`成员变量和`static`成员函数,以下是详细介绍: ### 定义`static`成员变量 `static`成员变量是所有类的实例共享的变量,其生命周期贯穿整个程序运行期间,在程序的静态存储区分配内存,而不是在栈或堆上。定义`static`成员变量需要在类内部声明,并在类外部进行定义和初始化。示例如下: ```cpp class MyClass { public: // 声明静态成员变量 static int staticVar; }; // 定义并初始化静态成员变量 int MyClass::staticVar = 10; ``` 在上述代码中,`staticVar`是`MyClass`类的静态成员变量。在类内部使用`static`关键字声明,在类外部进行定义和初始化。静态成员变量可以通过类名直接访问,也可以通过类的实例访问,但通常建议使用类名直接访问,以明确其静态性质。 ### 定义`static`成员函数 `static`成员函数是类的方法,不属于某个具体的对象。静态成员函数只能访问静态成员变量,不能访问非静态成员变量,因为非静态成员变量属于类的实例,而静态成员函数不依赖于任何实例。定义`static`成员函数的示例如下: ```cpp class MyClass { public: static int staticVar; // 声明静态成员函数 static int getStaticVar() { return staticVar; } }; // 定义并初始化静态成员变量 int MyClass::staticVar = 10; ``` 在上述代码中,`getStaticVar`是`MyClass`类的静态成员函数,用于返回静态成员变量`staticVar`的值。静态成员函数可以通过类名直接调用,也可以通过类的实例调用,建议使用类名直接调用。 ### 综合示例 ```cpp #include <iostream> class MyClass { public: // 声明静态成员变量 static int staticVar; // 声明静态成员函数 static int getStaticVar() { return staticVar; } }; // 定义并初始化静态成员变量 int MyClass::staticVar = 10; int main() { // 通过类名直接访问静态成员变量 std::cout << "Static variable value: " << MyClass::staticVar << std::endl; // 通过类名直接调用静态成员函数 std::cout << "Static variable value (accessed via static function): " << MyClass::getStaticVar() << std::endl; return 0; } ``` 在上述代码中,展示了如何定义和使用`static`成员变量和`static`成员函数。在`main`函数中,通过类名直接访问静态成员变量和调用静态成员函数。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值