C++_静态成员变量介绍

介绍

  • 静态成员是什么
    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
#include
using 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<
}
//取款函数
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.002
	m_balance = m_balance*(1 + m_rate / 100);
}
//--------------------变量初始化---------------------
double Account::m_rate = 0.2;//静态变量定义初始化

你可能感兴趣的:(C++学习参考,c++,学习,笔记)