练习1(1) 下载本文

内容发布更新时间 : 2025/4/20 10:55:06星期一 下面是文章的全部内容请认真阅读。

练习1:

#include class Point{ public: int x,y; Point(int a=0,int b=0):x(a),y(b){} friend ostream& operator<<(ostream&,Point&); void set(); };

ostream& operator<<(ostream& out,Point& p){ cout<<”(”<

void Point::set(){ cin>>x>>>y; }

int main(){ Point p1; int a=100; try {

p1.set()

if(p1.x<0) throw a; cout<

练习2:

#include #include void main()

{ char *ch;//假设输入字符串的长度不超过10 (ch=new char);

cin>>ch; cout<

练习3::

请将下列程序补充完整,使得输出结果为“Destructor B!Destructor A!”。 #include class A { public:

( virtual ~A() ){ cout << “Destructor A!”; } };

class B : public A

{ public: ~B(){ cout << “Destructor B!” } };

void main ()

{ A *pBase = new B;

( delete pBase ); }

练习4:

#include class Rectangle {public: Rectangle(int w,int h=5){W=w;H=h;} virtual int GetArea(){return W*H;} void DisplayArea(){cout<

class Square: public Rectangle {public: Square(int w):Rectangle(w){W=w;} int GetArea(){return W*W;} void Display(){cout<

void main()

{ Rectangle r(6,8);Square s(8); // cout<Broaden(6); pR->DisplayArea(); }

问题:65 45

1、Square类的函数Broaden是否为Rectangle类的函数Broaden的函数重载? 是

2、语句s.Broaden(5,0);中对象s调用的是哪个Broaden函数?并说明原因。 第二个类的 因为他有两个参数的对象

3、语句pR->Broaden(6);中指针pR调用的是哪个Broaden函数?并说明原因。 第一个 他只有一个参数

4、Square类的函数GetArea()是虚函数吗?并说明原因。

是,因为基类的getarea是虚函数,派生类的也会自动成为虚函数。

5、程序运行结果是什么? 169 81

6、如果去掉程序中惟一的一个virtual关键字,运行结果是什么? 65 45

7、程序中有唯一的一行注释,去掉注释编译出错,请说明出错原因。 W是基类的protected成员,不能被派生和基类以外的访问

练习6:

#include void f (char a[ ],char b[ ],int n) { }

void main() {

char *s1=new char[10], s2[100];

s1=\f(s1,s2,4); cout<

b[k]=(a[k]-'a'+4) & +'A'; b[n]=0;

}

问题:

1、在语句char *s1=new char[10], s2[100];中分别定义了一个动态数组和一个静态数组,请问动态数组与静态数组在定义数组大小方面的区别是什么? 动态大小可变,静态大小不可变

2、语句b[n]=0;中0表示什么意思?并进一步归纳一下零在C++中有哪些应用场合?

作为结束的标志,0可以赋值当整数,可以当条件语句中的非,十六进制的开头,还能代表字符空格 意为空

3、上述程序运行结果是什么? EFGH

练习7、

#include

void swap(int *p1, int &p2) { if ( *p1>p2 ) { int *temp; temp = *p1; *p1 = p2; p2 = temp; } }