【无标题】

第四次实验

代码:
Part a:
#include
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的数据成员的值为:” << ob.get_i();
cout << endl;
}
void sqr_it(Tr
ob)
{
ob->set_i(ob->get_i()*ob->get_i());
cout << “在函数sqr_it内,形参对象ob的数据成员的值为:” << ob.get_i();
cout << endl;
}
void sqr_it(Tr& ob)
{
ob.set_i(ob.get_i()*ob.get_i());
cout << “在函数sqr_it内,形参对象ob的数据成员的值为:” << ob.get_i();
cout << endl;
}
int main()
{
Tr obj(10);
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
using namespace std;
class Ctest {
static int count;
public:
Ctest() {
++count;
cout << “对象数量=” << count << “\n”;
};

};
int Ctest::count = 0;
int main() {
Ctest a[3];
return 0;
}

Part c:
#include
using namespace std;
class Student{
static float m_ClassMoney;
public:
Student(string name1)
{
name = name1;
}
void ExpendMoney(float expend) {
m_ClassMoney = m_ClassMoney - expend;
}
void ShowMoney() {
cout << “班费剩余:” << m_ClassMoney;
}
private:
string name;
};
float Student::m_ClassMoney = 1000;
int main() {
Student A(“Mike”);
Student B(“John”);
Student C(“Amy”);
A.ExpendMoney(50);
B.ExpendMoney(98.5);
C.ExpendMoney(500.53);
A.ShowMoney();
}

本次实验通过part a学习理解了三种传递参数的方法
分别是 值传递、指针传递和引用传递
对比参数的三种传递方式,可以发现“引用传递”和“指针传递”的性质一样,而书写方式像“值传递”。引用传递可以做的任何事指针也能够做到,因为指针能够毫无约束地操作内存中的东西,这种强大的功能背后也必将隐藏着巨大的危险,所以慎用指针。
通过part b 我学习理解了static类型的含义,了解了运用的场景。并且通过part c运用了static 。
c++中static的用法:

1、类的静态成员:

class A{

private:

static int val;

};

在cpp中必须对他进行初始化,初始化时使用作用域运算符来标明他所属类,其属于该类的所有成员共有,只有一个拷贝;

2、类的静态成员函数:

class A{

private:

static int func(int x);

};
  实现的时候也不需要static的修饰,因为static是声明性关键字;类的静态函数是该类的范畴内的全局函数,不能访问类的私有成员,只能访问类的静态成员,不需要类的实例即可调用;实际上,他就是增加了类的访问权限的全局函数;

void A::func(int);

静态成员函数可以继承和覆盖,但无法是虚函数;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值