介绍

  • 静态成员是什么
    1.静态成员属于类而不属于对象,生命周期只存在当前进程中
    2.相当于全局变量和全局函数,只是多了类作用域和访问控制属性限制
  • 静态成员有什么用
    1.静态成员函数没有this指针,没有常属性
    2.静态成员依然有类的作用域和访问限定符约束
  • 静态成员怎么用
    1.静态成员变量的定义和初始化只能在 类 的外部,不能在构造函数中
    2.静态成员变量为该类所有对象共享
    3.访问静态成员可以通过 对象 也 可以直接通过 类
    4.静态成员函数 只能访问 静态成员(且没有this指针)

笔记扩充

1.类里面 函数的声明带const 那定义也要带const.

源码

main.cpp

#include#include#include "Account.h"using namespace std;void main(){Account ICBA;ICBA.adjust(0.3);//调整利率//一号账户Account acc1("一航", 101, 4000);acc1.draw(2000);//取款acc1.query();//查看余额acc1.stetle();//调息acc1.query();cout << "-----------------------" << endl;//二号账户Account acc2("渔夫", 102, 40000);acc2.save(50000);//存款acc2.query();//查看余额acc2.stetle();//调息acc2.query();cout << "-----------------------" << endl;system("pause");}

Account.h

#pragma once#include#includeusing namespace std;class Account{public://构造初始化Account();Account(string const&name,int no,double balance);~Account();public://存款函数void save(double money);//取款函数void draw(double money);//查看余额void query()const;//声明带const定义也要带const//调整利率static void adjust(double rate);//存款利息设置void stetle();private:string m_name;//账户名int m_no;//账号double m_balance;//存款//静态变量声明一个变量(不占类大小)static double m_rate;//利率(PS:这个变量只属于 类)};

Account.cpp

#include "Account.h"//初始化Account::Account(){}Account::Account(string const&name, int no, double balance) :m_name(name), m_no(no), m_balance(balance){}//析构Account::~Account(){}//存款函数void Account::save(double money){m_balance += money;//cout << "您所存款金额为:" << money<<endl;}//取款函数void Account::draw(double money){if (money > m_balance){cout << "余额不足" << endl;}else{m_balance -= money;}}//查看余额void Account::query()const{cout << "账户名:" << m_name << endl;cout << "账号:" << m_no << endl;cout << "余额:" << m_balance << endl;}//调整利率void Account::adjust(double rate){if (rate > 0){m_rate = rate;}}//存款利息设置void Account::stetle(){//设置利息为 0.002m_balance = m_balance*(1 + m_rate / 100);}//--------------------变量初始化---------------------double Account::m_rate = 0.2;//静态变量定义初始化