2.6 作业

第五章  静态成员与友元

一、填空题

1、一个类的头文件如下所示,num初始化值为5,程序产生对象T,且修改num为10,并使用show()函数输出num的值10。

#include <iostream.h>

class Test

{ private:

static int num;

public:

Test(int);

void show();

};

_int Test::num=5;________

Test::Test(int n)

{ num=n; }

void Test::show()

{ cout<<num<<endl; }

void main()

{ Test t(10);

__t.show();_______

}

  2 、在下面程序的底画线处填上适当的字句,使该程序执行结果为40。

#include <iostream>

class Test

{ public:

_int x;_____;

Test (int i=0)

{x=i+x;}

int Getnum()

{return Test::x+7;}

};

_int Test::x=33;______;

void main()

{Test test;

cout<<test.Getnum()<<endl;;

}

、下列程序运行的结果是___________

     #include <iostream.h>

#include <string.h>

#include <iomanip.h>

class student

{char name[8];

int deg;

char level[7];

friend class process; // 说明友元类

public:

student(char na[],int d)

{ strcpy(name,na);

deg=d;

}

};

class process

{ public:

void trans(student &s)

{int i=s.deg/10;

switch(i)

{case 9:

strcpy(s.level, "优");break;

case 8:

strcpy(s.level,"良");break;

case 7:

strcpy(s.level,"中");break;

case 6:

strcpy(s.level,"及格");break;

default:

strcpy(s.level,"不及格");

}

}

void show(student &s)

{cout<<setw(10)<<s.name<<setw(4)<<s.deg<<setw(8)<<s.level<<endl;}

};

void main()

{ student st[]={student("张三",78),student("李四",92),student("王五

",62),student("孙六",88)};

process p;

cout<<"结 果:"<<"姓名"<<setw(6)<<"成绩"<<setw(8)<<"等级"<<endl;

for(int i=0;i<4;i++)

{ p.trans(st[i]);

p.show(st[i]);}

}

结 果:姓名   成绩    等级
         张三    78        中
         李四    92        优
         王五    62      及格
         孙六    88        良
 

二、编程题

2. 

 (1) 下述代码有何错误,改正它。

#include < iostream>

using namespace std;

class Animal;

void SetValue(Animal&, int);

void SetValue(Animal&, int, int);

class Animal

{

public:

    friend void SetValue(Animal&, int);

protected:

int itsWeight;

int itsAge;

};

void SetValue(Animal& ta, int tw)

{

    ta.itsWeight = tw;

}

void SetValue(Animal& ta, int tw, int tn)

{

    ta.itsWeight = tw;

    ta.itsAge = tn;

}

int main()

{

    Animal peppy;

    SetValue(peppy, 5);

    SetValue(peppy, 7,9);

return 0;

}

void SetValue(Animal& ta, int tw, int tn)无法访问类中被保护的成员,应在类中加上friend void SetValue(Animal& ta, int tw, int tn);

(2) 将上面程序中的友员改成普通函数,为此增加访问类中保护数据的成员函数。

void AnimalSetValue(Animal& ta, int tw)

{

    ta.itsWeight = tw;

}

3. 重新编写下述程序,使函数Leisure()成为类Car和类Boat的函数。作为重新编程,在类Car和类Boat中,增加函数set()。

#include < iostream>

using namespace std;

class Boat;

class Car

{

public:

    Car(int j){size = j;}

    void set(int j){size=j;}

    friend int Leisure(int time, Car& aobj, Boat& bobi);

protected:

    int size;

class Boat

{

public:

    Boat(int j){size = j;}

    void set(int j){size=j;}

    friend int Leisure(int time, Car& aobj, Boat& bobj);

protected:

    int size;

};

int Leisure(int time, Car& aobj, Boat& bobi)

{

    return time * aobj.size *bobi.size;

}

};

int main()

{

    Car c1(2);

    Boat bl(3);

    int time = 4;

    cout << Leisure(time, cl,bl);

return 0;

}

  • 9
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Quartz.NET是一个开源的任务调度框架,它允许你轻松地在.NET应用程序中安排和执行定期任务(也称为cron作业)。V2.6版本提供了一些增强功能和改进,下面是使用Quartz.NET V2.6的一些关键步骤和注意事项: 1. 安装:首先,你需要从NuGet包管理器中安装Quartz.NET,使用命令`Install-Package Quartz.Net`。 2. 设置:配置JobScheduler,通常会创建一个ISchedulerFactory实例并初始化Scheduler。在应用程序启动时,调用Scheduler的Start方法开始调度服务。 ```csharp using Quartz; //... var schedulerFactory = new StdSchedulerFactory(); IScheduler scheduler = schedulerFactory.GetScheduler(); scheduler.Start(); ``` 3. 创建Job:定义一个继承自IJob接口的类,并实现Execute方法,这是执行具体任务的地方。 ```csharp public class MyJob : IJob { public void Execute(IJobExecutionContext context) { // 你的业务逻辑 } } ``` 4. 定义Trigger:定义Job执行的时间规则,可以是固定时间、周期性、cron表达式等。 ```csharp ITrigger trigger = TriggerBuilder.Create() .WithSimpleSchedule(x => x.WithIntervalInMilliseconds(5000)) // 每5秒执行一次 .Build(); ``` 5. 安排执行:将Job和Trigger绑定到Scheduler上。 ```csharp scheduler.ScheduleJob(new JobDetail("myJob", "group1", typeof(MyJob)), trigger); ``` 6. 停止调度:在应用程序关闭时,记得停止Scheduler以确保所有任务都被正确处理。 ```csharp scheduler.Shutdown(); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值