1 / 17
文档名称:

静态成员和友元.ppt

格式:ppt   大小:108KB   页数:17页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

静态成员和友元.ppt

上传人:文库旗舰店 2018/5/13 文件大小:108 KB

下载得到文件列表

静态成员和友元.ppt

文档介绍

文档介绍:静态成员
静态成员的定义、初始化、调用
友元的作用和定义
第三章综合练****br/>主要内容
为什么需要静态成员
A1037528
id
123456
pwd

bal
10
min
John
A2180150
id
666666
pwd

bal
10
min
Cane
A5280175
id
654321
pwd

bal
10
min
Tom
每个对象中min的值都等于10,在内存中有多
个副本,造成空间浪费,而且不易管理
Account
10
min
A1037528
id
123456
pwd

bal
John
A2180150
id
666666
pwd

bal
Cane
A5280175
id
654321
pwd

bal
Tom
min不再占用多个对象的存储空间,而是让各对象共享数据成员min的值,则内存中min只有一个副本
静态成员是解决同一个类的不同对象之间的数据和函数共享问题。
静态成员是类的所有对象共享的成员,而不是某个对象的成员,它在对象中不占存储空间,是属于整个类的成员。
静态成员分为静态数据成员和静态成员函数。
格式:
static <静态成员的定义>;
什么是静态成员
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;
为什么要进行初始化
静态数据成员属于静态变量,必须对其进行初始化后才能使用。
何时进行初始化
静态变量不应该占用函数的空间,且静态数据成员不能占用对象的存储空间,因此一般在类的实现部分完成静态数据成员的初始化。
静态数据成员初始化
格式:
#include <>
#include “”
//
void Account::deposit(……)
{
<函数体实现>
}
//实现“存钱”成员函数
double Account::min_balance = 10; //注意不要写错!
<类型> <类名>::<静态数据成员>=<值>;
静态成员函数访问数据成员
void Account::deposit(double amount)
{
balance += amount;
cout<<“Balance in your account is :”<<balance<<endl;
}
//以前我们实现的“存钱”成员函数
void Account::deposit(double amount, Account a)
{
+= amount;
cout<<“Balance in your account is :”<<<<endl;
}
//现在实现的静态“存钱”成员函数
{
-= amount;
cout<<“Balance in your account is :”<<<<endl;
}
if (amount >= min_balance)
{
cout<<“There is not enough money in your account!<<endl;
exit(1);
}
//实现静态“取钱”成员函数
void Account::withdraw(double amount, Account a)
总结:静态成员函数可以直接访问该类的静态数据成员和成员函数,但是要在静态成员函数中使用非静态成员时,要通过对象来调用。