静态成员
静态成员
士主受内容 静态成员的定义、初始化、调用 友元的作用和定义 第三章综合练习
◼ 静态成员的定义、初始化、调用 ◼ 友元的作用和定义 ◼ 第三章综合练习 主要内容
为什么需要静态成员 每个对象中min的值都等于10,在内存中有多 个副本,造成空间浪费,而且不易管理 onn Ca ane Tom idA1037528 dA2180150 idA5280175 pwd123456pwd6666lpwd654321 bal1750.55 bal501325 bal10000.25 min 10 min 10 min 10
为什么需要静态成员 id A1037528 pwd 123456 bal 1750.55 min 10 John id A2180150 pwd 666666 bal 5013.25 min 10 Cane id A5280175 pwd 654321 bal 10000.25 min 10 Tom ◼ 每个对象中min的值都等于10,在内存中有多 个副本,造成空间浪费,而且不易管理
John Ca ane Tom idA1037528 idA2180150 idA52801 75 pwd123456 pwd666666 pwd654321 bal175055 bal501325 bal10000.25 Account min 10 min不再占用多个对象的存储空间,而是 让各对象共享数据成员min的值,则内存中 min只有一个副本
Account min 10 id A1037528 pwd 123456 bal 1750.55 John id A2180150 pwd 666666 bal 5013.25 Cane id A5280175 pwd 654321 bal 10000.25 Tom min不再占用多个对象的存储空间,而是 让各对象共享数据成员min的值,则内存中 min只有一个副本
么是静恋成员 静态成员是解决同一个类的不同对象之间的数 据和函数共享问题 静态成员是类的所有对象共享的成员,而不是 某个对象的成员,它在对象中不占存储空间, 是属于整个类的成员 静态成员分为静态数据成员和静态成员函数 格式: static
◼ 静态成员是解决同一个类的不同对象之间的数 据和函数共享问题。 ◼ 静态成员是类的所有对象共享的成员,而不是 某个对象的成员,它在对象中不占存储空间, 是属于整个类的成员。 ◼ 静态成员分为静态数据成员和静态成员函数。 ◼ 格式: static ; 什么是静态成员
Account类静恋成员的定义 class account ublIc static void deposi() static void withdraw(); void display private static double min balance char pwd 6 double balance char
Account类静态成员的定义: class Account { }; static void deposit(); static void withdraw(); void display(); char id[8]; char pwd[6]; double balance; public: private: static double min_balance;
静态教据成员初始化 为什么要进行初始化 静态数据成员属于静态变量,必须 对其进行初始化后才能使用 何时进行初始化 静态变量不应该占用函数的空间, 且静态数据成员不能占用对象的存储空 间,因此一般在类的实现部分完成静态 数据成员的初始化
◼ 为什么要进行初始化 静态数据成员属于静态变量,必须 对其进行初始化后才能使用。 ◼ 何时进行初始化 静态变量不应该占用函数的空间, 且静态数据成员不能占用对象的存储空 间,因此一般在类的实现部分完成静态 数据成员的初始化。 静态数据成员初始化
士格式 :三; ∥ Account. cpp文件中的代码 #include # include“ Account . h double account: min balance=10;∥注意不要写错! ∥/实现“存钱”成员函数 void Account: deposit(...)
格式: #include #include “Account.h” //Account.cpp文件中的代码 void Account::deposit(……) { } //实现“存钱”成员函数 double Account::min_balance = 10; //注意不要写错! ::=;
静态成员巫数访问数据成员 八以前我们实现的“存钱”成员函 数 id Account: deposit( double amount) balance + amount cout<< Balance in your account is: <<balance<<endl 现在实现的静态“存钱”成员函数 void Account: deposit(double amount, Account a) a balance + amount cout<< Balance in your account is: <<a balance<<endl
静态成员函数访问数据成员 void Account::deposit(double amount) { balance += amount; cout<<“Balance in your account is :”<<balance<<endl; } //以前我们实现的“存钱”成员函 数 void Account::deposit(double amount, Account a) { a.balance += amount; cout<<“Balance in your account is :”<<a.balance<<endl; } //现在实现的静态“存钱”成员函数
∥/实现静态“取钱”成员函数 void Account: withdraw(double amount, Account a) if (amount >=min balance) cout<< There is not enough money in your account!<<endl exit a balance - amount cout<< Balance in your account is: <<a balance<<end\, 总结:静态成员函数可以直接访问该类的静态数据成员和成员 函数,但是要在静态成员函数中使用非静态成员时,要通过对 象来调用
{ a.balance -= amount; cout= min_balance) { cout<<“There is not enough money in your account!<<endl; exit(1); } //实现静态“取钱”成员函数 void Account::withdraw(double amount, Account a) 总结:静态成员函数可以直接访问该类的静态数据成员和成员 函数,但是要在静态成员函数中使用非静态成员时,要通过对 象来调用