《Essential C++》系列笔记之第四章(基于对象的编程风格)之第五节(静态类成员)

在这里插入图片描述
代码实践

  • main.cpp

    #include <iostream>
    using namespace std;
    #include "Person.h"
    
    int main()
    {
    	Person::display_add(); //静态成员函数可以当成普通函数调用,只是需要class scope运算符
    	Person::display();
    	Person A(18, "hehe");
    	A.display_name();
    
    	A.display_add();
    
    	system("pause");
    	return 0;
    }
    
  • Person.h

    #pragma once
    #include <iostream>
    using namespace std;
    #include <string>
    
    class Person
    {
    public:
    	Person(int age, string name)
    		:_age(age), _name(name)
    	{};
    
    	//static void display_name(); //错误,因为该函数访问了 non-static member
    	void display_name();
    	static void display_add(); //正确,因为该函数没有访问 non-static member
    	static void display(); //正确,因为该函数没有访问 non-static member
    
    private:
    	int _age;
    	string _name;
    	//static string _address = "china"; //错误 这种static必须在程序代码文件中提供定义
    	static string _address;
    	static const int sex = 5; //const static int data member可以在声明时指定初值()
    };
    
  • Person.cpp

    #include "Person.h"
    
    string Person::_address = "china"; //这里也不需要加上static关键字 但是需要class scope运算符
    
    void Person::display_name()
    {
    	cout << _name << endl;
    }
    
    void Person::display_add() //这里也不需要加上static关键字
    {
    	cout << _address << endl;
    }
    
    void Person::display()
    {
    	cout << "hello world" << endl;
    }
    

今天是20200319 今儿中午的红烧肥肠味道好极了😋

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值