#include <iostream>
using namespace std;
class Apple
{
private:
static int apples; //只是声明静态成员,并没有定义,也没有初始化。不占内存。
int apple;
public:
Apple(){};
~Apple(){};
void setApples(int a) //非静态成员函数是可以访问静态成员变量的
{
apples=a;
}
/*
void static setApple(int b) //此处错误。静态成员函数不能访问非静态变量
{
apple=b;
}
*/
int static getApple()
{
return apples;
}
};
int Apple::apples; //这里才是定义,同时可以在这里初始化 如:int Apple::apples=12;
int main()
{
Apple ma;
cout<<"sizeof"<<sizeof(ma)<<endl; //输出4
ma.setApples(17); //如果没有int Apple::apples; 此处出错,找不到Apple::apples
int num=ma.getApple();
cout<<"apples="<<num<<endl; //输出17
return 0;
}C++静态成员变量的声明与定义及初始化
最新推荐文章于 2025-05-24 16:54:06 发布
本文通过一个具体的C++示例,详细介绍了静态成员变量的概念、声明与定义的区别、内存分配情况,以及静态成员函数如何正确使用。同时展示了静态成员变量在类实例之间的共享特性。
部署运行你感兴趣的模型镜像
您可能感兴趣的与本文相关的镜像
ACE-Step
音乐合成
ACE-Step
ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言
639





