zoukankan      html  css  js  c++  java
  • 学习:类和对象——静态成员变量和函数

    静态成员:

    静态成员就是在成员变量和成员函数前加上关键字static,称为静态成员

    静态成员分为: 静态成员变量和静态成员函数,其中这两个特点如下

    静态成员变量:

    特点1、所有对象共享同一份数据
    特点2、在编译阶段分配内存
    特点3、类内声明,类外初始化

    静态成员函数:

    特点1、所有对象共享同一个函数
    特点2、静态成员函数只能访问静态成员变量


    静态成员变量:
    示例代码:

    #include<iostream>
    #include<string>
    
    using namespace std;
    
    class Person {
    
    public:
    	Person() {
    		cout << this->b << endl;
    	}
    	
    public:
    	static int a; //定义一个共享静态成员变量
    private:
    	static int b; //定义一个私有静态成员变量
    };
    
    int Person::a = 1;
    int Person::b = 2;
    
    
    void test01() {
    	Person p1;
    	cout << p1.a << endl; // 生成p1的对象 直接访问不可以,因为没有在外部对静态成员进行初始化
    	//cout << p1.b << endl; //无法进行访问,因为静态变量b是私有的
    
    	//由于静态成员变量是存在于全局区的,所以我们可以直接通过类名进行访问
    	cout << Person::a << endl;
    	//cout << Person::b << endl;
    
    }
    
    int main() {
    	test01();
    	
    	system("pause");
    	return 0;
    }
    

    静态成员函数:

    静态成员函数特点:
    特点1、程序共享一个函数
    特点2、静态成员函数只能访问静态成员变量

    示例代码

    #include<iostream>
    #include<string>
    
    using namespace std;
    
    
    class Person {
    public:
    	Person(int a) {
    		this->a = 10;
    	}
    
    	static void to_visit() { // 静态函数可以访问静态变量,但是无法访问类中的变量,原因也很好理解,无法区别到底是哪个对象的a成员变量
    		cout << "这是公共静态成员函数" << endl;
    		cout << a << endl;
    	}
    
    public:
    	static int a;
    private:
    	static void to_visit_s() { //同样的也有私有静态成员函数
    		cout << "这是私有静态成员函数" << endl;
    	}
    };
    
    int Person::a = 1;
    
    int main() {
    
    	Person p1(10);
    	cout << p1.a << endl;
    	Person::to_visit();//同样也可以通过类名进行访问静态成员函数
    	p1.to_visit(); //通过对象访问静态成员函数
    	//Person::to_visit_s();
    	system("pause");
    	return 0;
    }
    
  • 相关阅读:
    TestNG+maven+idea 环境基本使用
    linux基本命令
    linux -查看cpu 内存 磁盘 端口 进程
    Scanner类、Random类、ArrayList 类
    (四)面向对象
    (三)数组
    (二)流程-循环
    (一)java基础_常量+变量+数据类型+运算符+方法
    SQL (二)
    SQL(一)
  • 原文地址:https://www.cnblogs.com/zpchcbd/p/11863233.html
Copyright © 2011-2022 走看看