part a 三种不同的对象传递方式
1.使用对象作为函数参数
#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)
{
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前,形参对象ob的数据成员i的值为: ";
cout << obj.get_i() << endl;
sqr_it(obj);
cout << "调用函数sqr_it后,形参对象ob的数据成员i的值为: ";
cout << obj.get_i() << endl;
return 0;
}
2.使用对象指针作为函数参数
#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)
{
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前,形参对象ob的数据成员i的值为: ";
cout << obj.get_i() << endl;
sqr_it(&obj);
cout << "调用函数sqr_it后,形参对象ob的数据成员i的值为: ";
cout << obj.get_i() << endl;
return 0;
}
3.使用对象引用作为函数参数
#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)
{
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前,形参对象ob的数据成员i的值为: ";
cout << obj.get_i() << endl;
sqr_it(obj);
cout << "调用函数sqr_it后,形参对象ob的数据成员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;
int main(void) {
Ctest a[3];
return 0;
}
part c
#include <iostream>
using namespace std;
class TSstudent
{
public:
double money;
static double m_ClassMoney;
void lnitstudent(char name[])
{
}
void expendmoney(double a)
{
money = a;
}
double ShowMoney()
{
m_ClassMoney -= money;
return m_ClassMoney;
}
};
double TSstudent::m_ClassMoney = 1000;
int main()
{
TSstudent A;
TSstudent B;
TSstudent C;
A.expendmoney(50);
cout << "班费还剩余" << A.ShowMoney() << endl;
B.expendmoney(98.5);
cout << "班费还剩余" << B.ShowMoney() << endl;
C.expendmoney(500.53);
cout << "班费还剩余" << C.ShowMoney() << endl;
}
# include<iostream>
#include<string.h>
using namespace std;
class TStudent {
static float m_ClassMoney;
char name1[3][100];
static int j;
public:
void InitStudent(char name[]);
void ExpendMoney(float money);
void ShowMoney();
};
float TStudent::m_ClassMoney = 1000;
int TStudent::j = 0;
void TStudent::InitStudent(char name[])
{
strcpy_s(name1[j], name);
j++;
}
void TStudent::ExpendMoney(float money)
{
m_ClassMoney= m_ClassMoney - money;
}
void TStudent::ShowMoney()
{
cout <<"班费还剩余"<< m_ClassMoney << endl;
}
int main(void)
{
TStudent A, B, C;
char name[3][100];
float money;
for (int i = 0; i < 3; i++)
{
cout << "请输入学生姓名" << endl;
cin >> name[i];
}
A.InitStudent(name[0]);
B.InitStudent(name[1]);
C.InitStudent(name[2]);
cout << "请输入消费金额" << endl;
cin >> money;
A.ExpendMoney(money);
A.ShowMoney();
cout << "请输入消费金额" << endl;
cin >> money;
B.ExpendMoney(money);
B.ShowMoney();
cout << "请输入消费金额" << endl;
cin >> money;
C.ExpendMoney(money);
C.ShowMoney();
}