阅读以下程序并填空 ,使其成为完整的程序
1、下列程序在构造函数和析构函数中申请和释放类的私有成员,请完成该类的实现。
class MyClass
{
public:
MyClass(int a);
~MyClass();
private:
int* X;
};
MyClass::MyClass(int a)
{
____(1)_____;
}
MyClass::~MyClassO
{
____(2)______;
}
2、请根据提示完成该类的定义
#include<iostream>
#include<cstring>
using namespace std;
class Student{
char *name;
int age;
int score;
public:
char * Getname(){
(3) //返回学生姓名
}
int Getage(){
return age;
}
int Getscore(){
return score;
}
void display(){ //显示学生相关信息
(4)
}
Student(char* n,int a,int s){ //分别用n,a和s初始化学生的姓名,年龄和成绩
name=new char[strlen(n)+1];
strcpy(name,n);
age=a;
score=s;
}
Student(const Student& s){ //拷贝构造函数
name=new char[strlen(s.name)+1+6];
strcpy(name,"copyof");
strcat(name,s.name);
age=s.age;
score=s.score;
}
~Student(){
(5)
}
};
编程题
1、下图描述了A、B、C三个类的关系以及包含成员,定义这三个类。
2、设计并测试复数类(Complex)
- 设计一个复数类(Complex)包含两个数据成员:实部(real),虚部(imagin);
包含如下主要成员函数:
- 构造函数(用来初始化一个复数对象,默认实部、虚部均为0);
- 重载加、减法运算符(+、-)实现复数类的加、减法运算;
- 显示复数对象,按a+bi(a为实部、b为虚部)格式输出一个复数对象。
- 请在主函数中使用所设计的复数类定义两个复数对象,求其和、差并输出。
答案
阅读以下程序并填空 ,使其成为完整的程序
(1) X=new int(a)
(2) delete X
(3) return name;
(4) cout<<"name:"<<name<<","<<"age:"<<age<<","<<"score:"<<score<<endl;
(5) delete[] name;
编程题
1、
class A
{public:
int a;
void display( );
};
class B
{public:
int a;
void display( );
};
class C :public A,public B
{public :
int b;
void show();
};
2、
#include <iostream.h>
class complex
{
public:
complex(double r=0.0,double i=0.0)
{ real=r; image=i; }
friend complex operator +(complex c1,complex c2);
friend complex operator -(complex c1,complex c2);
void display();
private:
double real;
double image;
};
complex operator +(complex c1,complex c2)
{
return complex(c1.real+c2.real,c1.image+c2.image);
}
complex operator -(complex c1,complex c2)
{
return complex(c1.real-c2.real,c1.image-c2.image);
}
void complex::display()
{
if(image>0)
cout<<real<<"+"<<image<<"i"<<endl;
else if(image<0)
cout<<real<<image<<"i"<<endl;
else cout<<real<<endl;
}
int main()
{
complex c1(5,4),c2(2,10),c3;
cout<<"c1="; c1.display();
cout<<"c2="; c2.display();
c3=c1-c2;
cout<<"c3=c1-c2="; c3.display();
c3=c1+c2;
cout<<"c3=c1+c2="; c3.display();
return 1;
}