Part A
# include<iostream>
using namespace std;
class Tr{
public :
Tr(int n)
{i = n;}
void set_i(int n)
{ i= n;}
int get_i()
{return i;}
private:
int i;
};
void sqr_it(Tr ob) l/对象ob作为函数sqr_it的形参
{ ob.set_i(ob.get_i()*ob.get_i());
cout<<"在函数sqr_it内,形参对象ob的数据成员i的值为:"<<ob.get_i();
cout<<endl;
}
int main()
{ Tr obj(10);
cout<<"调用函数sqr_it前,实参对象obj的数据成员i的值为:";
cout<<obj.get_i()<<endl;
cout<<"调用函数sqr_it前,实参对象obj的数据成员i的值为:";
cout<<obj.get_i()<<endl;
sqr_it(obj);
cout<<"调用函数sqr_it后,实参对象obj的数据成员i的值为:";
cout<<obj.get_i()<<endl;
return 0;
}
Part B
#include<iostream>using namespace std;
class Ctest{
static int count;//私有成员
public:
Ctest() {
++count;cout<<"对象数量="<<count<<'\n';}
};
int Ctest::count=0; //A,对静态数据定义性说明
int main(void){
Ctest a[3];
return 0;
}
Part C
Project1.cpp
#include”TStudent.h”
using namespace std;
float TStudent::m_ClassMoney =1000
int main(){
TStudent a [3];
float money_s;
char nam [100I100];
for(int i=0;i<3;i++)
{
cout<<”请输入学生姓名”<<endl ;
a[i].InitStudent(nam[i]);
cout<<“请输入该学生消费的班费”<<endl;
cin>>money _ s;
a[i].ExpendMoney (money_s);
a[i]. ShowMoney ();
}
return 0;
H.h
#include<iostream>
Using namespace std;
Class TStudent
{ static float m_ClassMoney;
public:
void InitStudent(char name[])
{cin>>name;
};
void ExpendMoney(float money)
{ m_ClassMoney -=money;};
void Showmoney(){
cout<<”班费还剩余”<<m_ClassMoney;
};
private:
int i;
char studentname[100];
float money;
};
总结:静态成员在之前C中接触过,不同于C的一点是C++常将静态成员封装在某个类中。这样做的目的通常有两个:一是限制变量的作用范围,例如将某个变量放到类的私有部分声明,那么他只能由该类对象的函数成员总结访问,
二是将相关变量与相关操作放在一起,增强程序可读性。