⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 604.cpp

📁 C++实训教程
💻 CPP
字号:
//程序中Book类有一个静态成员Num,记录总的对象个数。但运行的结果有点"奇怪":在main()标记的①处,应输出:"Num of Books is 1."运行正确,因为此前只有一个对象--r1。接着②处调用fn(r1),进入fn(Book c)内创建了4个对象:形参c、对象o1、o2、o3,至此共有5个对象,但却输出:"Num of Books is 2."。在③处,因为退出fn(),4个对象撤消,至此只有一个对象--r1,但输出"Num of Books is -2."。⑴原因是什么?⑵如何修改524.cpp。
//604.CPP  
#include <iostream.h>
class Book
{
		int page;
		static int Num;// private静态成员变量
	public:
		Book(int pp){page=pp;Num++;}
		//Book(Book & r){page=r.page; Num++;}//Must be here
		~Book(){Num--;}
		static int GetNum(){return Num;}
};
void fn(Book c);
int Book::Num=0;// 对静态公有成员变量进行初始化

void main()
{
	Book r1(20.0);
	cout<<"Num of Books is "<<Book::GetNum()<<".\n";//①
	fn(r1);//②
	cout<<"Num of Books is "<<Book::GetNum()<<".\n";//③
}
void fn(Book c)
{
	Book obj=c;
	cout<<"Num of Books is "<<Book::GetNum()<<".\n";
}
/*
Num of Books is 1.
Num of Books is 3.
Num of Books is 1.

*/
/* if without =overload
Num of Books is 1.
Num of Books is 1.
Num of Books is -1.

*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -