C++老师留的作业题,哪位大侠帮忙做下,没多少分,但是要求快点,多答多加分发到我的邮箱:[email protected]
一.选择题
1.构造函数的任务是:
A)初始化函数成员 B)为对象分配内存 C)初始化数据成员 D)建立对象
2.成员函数重载双目运算符时,左操作数是:
A)数值 B)对象 C)该函数的参数 D)类名
3.当用public继承从基类派生一个类时,基类的public成员成为派生类的什么成员?
A) public B) private C) protected D) virtual
4.拷贝构造函数用于哪些方面?
A)当函数的形参是类的对象,调用函数时,进行形参与实参结合时使用。
B)当函数的返回值是类对象,函数执行结束返回调用者时使用。
C)当定义对象时使用。
D)用类的一个对象去初始化该类的另一个对象时使用。
二.简答题:
1.解释什么是面向对象程序设计的封装性。
2. 是否使用了虚函数就能实现运行时的多态性?怎样才能实现运行时的多态性?
3.构造函数和析构函数可以继承吗?派生类构造函数各部分的执行次序是怎样的?
4.什么是this指针?简述它的作用。
三.写出下面程序的运行结果
#include<iostream.h>
class base
{ protected:
int a;
public:
base()
{ a=5; cout<<"base a="<<a<<endl; }
};
class base1: virtual public base
{ public:
base1()
{ a=a+10; cout<<"base1 a="<<a<<endl; }
};
class base2: virtual public base
{ public:
base2()
{ a=a+20; cout<<"base2 a="<<a<<endl; }
};
class derived: public base1, public base2
{ public:
derived()
{ cout<<" derived a="<<a<<endl;
}
};
main()
{ derived obj;
return 0;
}
运行结果为:
四.编写程序
1.重载运算符“+”、“-”、“*”、“/”、,使其能实现对复数的运算。
2.构造一个Time类,包含数据成员minute(分)和sec(秒),模拟秒表,每次走1秒,
满60秒进1分钟,此时秒又从0开始算。要求输出分和秒的值。
五.编辑程序:(每题10分,共20分)
1.修改下述程序,使其运行结果为:
Student No. is: 20021, age is: 20.
#include<iostream.h>
class Student
{ int ano;
int age;
float aver;
void printStu();
void setSno(int d);
void setAge(int a)
};
void printStu()
{
cout<<”\nStudent No. is “<<sno<<”, “;
cout<<”age is “<<age<<”.”<<endl;
}
void setSno(int s)
{ sno=s;
}
void setAge(int a)
{ age=a;
}
void main()
{ Student lin;
lin.setSno(20021);
lin.setAge(20);
lin.printStu();
}
2.下述程序编译有错,修改后使其运行结果为:
0 Student exist
please input student No.33
please input student No.88
2 Student exist,y=33
2 Student exist,y=88
#include<iostream.h>
#include<stdlib.h>
class Student
{ private:
static int x;
int Sno;
public:
Student();
{ ++x;
cout<<”\nplease input student No.”;
cin>>Sno;
}
static int get_x()
{ return x; }
int get_Sno()
{ return Sno; }
};
int Student::x=0;
void main()
{ cout<<Student::get_x()<<” Student exist\n”;
Student stu1;
Student *pstu=new Student;
cout<<Student::get_x()<<” Student exist,y=”<<get_Sno()<<”\n”;
cout<<Student::get_x()<<” Student exist,y=”<<get_Sno()<<”\n”;
}