首页 > 其他分享 >20.静态成员变量

20.静态成员变量

时间:2022-09-21 21:24:36浏览次数:47  
标签:20 变量 静态 Maker int 100 public

程序1:

#pragma warning(disable:4996)
//2022年9月21日19:20:29
#include <iostream>
using namespace std;

class Maker
{
public:
    Maker()
    {
        a = 20;
    }
public:
    //1.生命周期是整个程序,作用域在类内
    static int a;
};

void test01()
{
    Maker m;
}
int main()
{
    system("pause");
    return EXIT_SUCCESS;
}

输出结果:(静态成员变量要在类内声明,类外初始化)



程序2:

#pragma warning(disable:4996)
//2022年9月21日19:20:29
#include <iostream>
using namespace std;

class Maker
{
public:
    Maker()
    {
       
    }
public:
    //1.生命周期是整个程序,作用域在类内
    static int a;
};

//2.静态成员变量要在类内声明,类外初始化
int Maker::a = 100;

void test01()
{
    Maker m;
    cout << m.a << endl;
}

int main()
{
    test01();
    system("pause");
    return EXIT_SUCCESS;
}

输出结果:

100
请按任意键继续. . .


程序3:

#pragma warning(disable:4996)
//2022年9月21日19:20:29
#include <iostream>
using namespace std;

class Maker
{
public:
    Maker()
    {
       
    }
public:
    //1.生命周期是整个程序,作用域在类内
    static int a;
};

//2.静态成员变量要在类内声明,类外初始化
int Maker::a = 100;

void test01()
{
    //3.静态成员变量属于类内,不属于对象,是所有对象共享
    cout << Maker::a << endl;
    Maker m;
    cout << m.a << endl;
}
int main()
{
    test01();
    system("pause");
    return EXIT_SUCCESS;
}

输出结果:

100
100
请按任意键继续. . .


程序4:

#pragma warning(disable:4996)
//2022年9月21日19:20:29
#include <iostream>
using namespace std;

class Maker
{
public:
    Maker()
    {
       
    }
public:
    //1.生命周期是整个程序,作用域在类内
    static int a;
};
//2.静态成员变量要在类内声明,类外初始化
int Maker::a = 100;
void test01()
{
    //3.静态成员变量属于类内,不属于对象,是所有对象共享
    cout << Maker::a << endl;
    Maker m;
    cout << m.a << endl;
    //4.静态成员变量可以用类访问,也可以用对象访问
}

class Maker2
{
public:
    Maker2()
    {

    }
    //静态成员函数只能访问静态成员变量
    static void setA(int a)
    {
        a2 = a;
        cout << "a2 = " << a2 << endl;
        //a1 = a;//err不能访问普通成员变量
    }
public:
    int a1;
    static int a2;
};
int Maker2::a2 = 200;
void test02()
{
    Maker2::setA(300);
}

int main()
{
    test02();
    system("pause");
    return EXIT_SUCCESS;
}

输出结果:

a2 = 300
请按任意键继续. . .


程序5:

#pragma warning(disable:4996)
//2022年9月21日19:20:29
#include <iostream>
using namespace std;

class Maker
{
public:
    Maker()
    {
       
    }
public:
    //1.生命周期是整个程序,作用域在类内
    static int a;
};
//2.静态成员变量要在类内声明,类外初始化
int Maker::a = 100;
void test01()
{
    //3.静态成员变量属于类内,不属于对象,是所有对象共享
    cout << Maker::a << endl;
    Maker m;
    cout << m.a << endl;
    //4.静态成员变量可以用类访问,也可以用对象访问
}

class Maker2
{
public:
    Maker2()
    {

    }
    //静态成员函数只能访问静态成员变量
    static void setA(int a)
    {
        a2 = a;
        cout << "a2 = " << a2 << endl;
        //a1 = a;//err不能访问普通成员变量
    }
public:
    int a1;
    static int a2;
};
int Maker2::a2 = 200;
void test02()
{
    Maker2::setA(300);
}

class Maker3
{
private:
    static int a3;
public:
    static void func()
    {
        cout << "a3 = " << a3 << endl;
    }
};
int Maker3::a3 = 300;
void test03()
{
    Maker3::func();
}

//const修饰的成员变量最好在类内初始化
class Maker4
{
public:
    const static int a = 20;
    const static int b;
};
//类外也可以初始化
const int Maker4::b = 30;
int main()
{
    test03();
    system("pause");
    return EXIT_SUCCESS;
}

输出结果:

a2 = 300
请按任意键继续. . .


程序6:

#pragma warning(disable:4996)
//2022年9月21日19:20:29
#include <iostream>
using namespace std;

class Maker
{
public:
    Maker()
    {
       
    }
public:
    //1.生命周期是整个程序,作用域在类内
    static int a;
};
//2.静态成员变量要在类内声明,类外初始化
int Maker::a = 100;
void test01()
{
    //3.静态成员变量属于类内,不属于对象,是所有对象共享
    cout << Maker::a << endl;
    Maker m;
    cout << m.a << endl;
    //4.静态成员变量可以用类访问,也可以用对象访问
}

class Maker2
{
public:
    Maker2()
    {

    }
    //静态成员函数只能访问静态成员变量
    static void setA(int a)
    {
        a2 = a;
        cout << "a2 = " << a2 << endl;
        //a1 = a;//err不能访问普通成员变量
    }
public:
    int a1;
    static int a2;
};
int Maker2::a2 = 200;
void test02()
{
    Maker2::setA(300);
}

class Maker3
{
private:
    static int a3;
public:
    static void func()
    {
        cout << "a3 = " << a3 << endl;
    }
};
int Maker3::a3 = 300;
void test03()
{
    Maker3::func();
}

//const修饰的成员变量最好在类内初始化
class Maker4
{
public:
    const static int a = 20;
    const static int b;
};
//类外也可以初始化
const int Maker4::b = 30;

//const修饰的静态成员变量最好在类内初始化
class Maker5
{
public:
    void func()
    {
        cout << "a = " << a << endl;
    }
public:
    static int a;
};
int Maker5::a = 30;

void test04()
{
    Maker5 m;
    m.func(); 
    //Maker::func();//err普通成员函数
}

int main()
{
    test04();
    system("pause");
    return EXIT_SUCCESS;
}

输出结果:

a3 = 30
请按任意键继续. . .

标签:20,变量,静态,Maker,int,100,public
From: https://www.cnblogs.com/codemagiciant/p/16717164.html

相关文章

  • 变量
    概念变量:计算机内存当中存储数据的最基本的单元。变量就是内存当中的一块空间。变量有三要素:数据类型、变量名、字面值。定义  数据类型 变量名=变量值;  ......
  • VS2022+OpenGL:安装
    EBU7405-3DGraphicsProgrammingTools的要求罢嘞,除了自带的GL只安装GLUT;参考的老师的文档安装VSCODE下载VSCode预览版下载地址稳定版下载地址选择组件修改......
  • 20220921 模拟赛
    T1彩票\(n\leq10^5\)。发现三等奖有三种情况,一等奖和二等奖却都只有一种情况,感觉很烦,考虑暴力做掉三等奖的彩票号码,直接三重循环枚举,这一部分消耗\(O(\dfrac{100^3......
  • CSP 2021
    普及分糖果(红)没有1A,身败名裂)点击查看代码#include<bits/stdc++.h>#definefffflush(stdout)#definethankputs("感恩......
  • springboot+Flink(读取kafka并存入Mysql)20220921
    1、mysql数据库test 2、kafka创建主题student  3、pom.xml<properties><java.version>1.8</java.version><project.build.sourceEncod......
  • 2022暑假吃饭记录
    只包括在校的午饭和晚饭。7.4星期一:{\(\,\,\,\,\,\,\,\,\)午饭:cBr凉面+饭团。\(\,\,\,\,\,\,\,\,\)晚饭:方便面杨掌柜粉面菜蛋红色。}7.5星期二:{\(\,\,\,\,\,\,\,......
  • CSP-S2022游记
    2022.9.18晚分数估出来了,63.5,比去年高(去年才三十几分啊/(ㄒoㄒ)/~),一部分原因是我的成长,还有一部分是因为确实比去年简单不少。单论分数我满意,一比较又觉得担心且不甘心。......
  • [NOIP2000 普及组] 计算器的改良
    [NOIP2000普及组]计算器的改良题目背景NCL是一家专门从事计算器改良与升级的实验室,最近该实验室收到了某公司所委托的一个任务:需要在该公司某型号的计算器上加上解一......
  • windows 2008 R2 断电重启进入修复模式
    windows2008R2意外断电重启进入修复模式 现在出现一个问题,就是当机房停电的时候,计算机自动进入到修复模式,当人不在机房的时候,容易造成服务器无法访问,我相信正常启动应......
  • 【SQL 编程你也行】SQL Server 2012新功能之函数:转换函数
    在SQLServer2012中,新增了几个转换函数,用于支持数据类型的强制转化。由于之前主要用的是SQLServer2008R2,而公司的项目为了提高开发效率,很多表的列都为varchar类型,但也......