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

介绍

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

笔记扩充

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

源码

main.cpp

#include<iostream>
#include<string>
#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<iostream>
#include<string>
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<<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.002
	m_balance = m_balance*(1 + m_rate / 100);
}
//--------------------变量初始化---------------------
double Account::m_rate = 0.2;//静态变量定义初始化

相关推荐

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

    2023-12-28 21:14:06       32 阅读
  2. C++静态成员数据

    2023-12-28 21:14:06       46 阅读
  3. 5.C++静态成员

    2023-12-28 21:14:06       31 阅读
  4. C++静态变量

    2023-12-28 21:14:06       17 阅读
  5. c++》继承同名静态成员处理方式

    2023-12-28 21:14:06       19 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-28 21:14:06       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-28 21:14:06       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-28 21:14:06       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-28 21:14:06       18 阅读

热门阅读

  1. MOS和三极管

    2023-12-28 21:14:06       39 阅读
  2. Go语言并发编程:Goroutines和Channels的详细指南

    2023-12-28 21:14:06       44 阅读
  3. 应对微信小程序用户流失率的有效策略

    2023-12-28 21:14:06       35 阅读
  4. js 事件处理(addEventListener() 、removeEventListener())

    2023-12-28 21:14:06       35 阅读
  5. 浅谈Linux的OOM Killer机制

    2023-12-28 21:14:06       36 阅读
  6. nginx配置后不生效的问题

    2023-12-28 21:14:06       38 阅读
  7. IP地址学习(一)

    2023-12-28 21:14:06       39 阅读
  8. nuclei全面使用教程【工具篇】

    2023-12-28 21:14:06       31 阅读
  9. RBE306TC Computer Vision Systems

    2023-12-28 21:14:06       27 阅读
  10. .gitignore

    2023-12-28 21:14:06       35 阅读