使程序的输出结果为: the worker is Zhang San the manager is Liu Ping #include
//删除【】左边的下划线并填入适当的语句,使它能调试并得到正确的结果。 //注意:不要改动main函数,不得增行或删行,也不得更改程序的结构 class manager; class worker {
char *name; public:
worker(char *str) {
name=str; }
friend void print(worker &, manager &); };
class manager {
char *name; public:
manager(char *str) {
name=_str_;//【1】 }
friend void print(worker &, manager &); };
void print(worker _&a_, manager _&b_) //【2】 {
cout<<\cout<<\}
void main() {
worker w(\manager m(\print(_w,m_); //【3】 }
题目描述:仔细阅读下列求两个点之间距离的程序,程序的输出结果是50,根据程序的输出结果在划线处填入正确语句。 #include
{
public:
point(float a,float b) { x=a; y=b; } float Distance(point &p) {
float dx=p.x-x; float dy=p.y-y;
return (float)sqrt(dx*dx+dy*dy); }
private: float x,y; };
int main() {
point p1(2,3),p2(32,43);
cout< 下列程序中声明了类girl,其中函数“display”是类girl的友元函数,请在(1)、(2)和(3)处各填入正确的内容,使程序能正常运行。 #include private: char name; int age; public: girl(char n, int d) //构造函数 { name= n; age=d; } friendvoid display(girl &x); //声明友元函数 }; void display(girl &x) //类外定义友元函数 { cout<<\ //girl类的友元函数能访问girl类对象的私有成员 } int main( ) { girl e('z',18); display(e); //调用友元函数 return 0; } 后置自增运算符“++”重载为类的成员函数(设类名为A)的形式为 A operator++(int) 。 假定AB为一个类,则语句AB(AB&x);为该类 拷贝构造 函数的原型说明。 定义类时,在类头中将使用关键字 class 来表示类定义的开始。 C++中,友元 不是 (是、不是)该类的成员函数 C++类的组成包括数据成员和 成员函数 。 new的功能是分配内存空间,delete的功能是 释放内存空间 。 无论是什么继承方式,派生类的成员不能访问基类 私有 属性的成员。 如果一个类包含一个或多个纯虚函数,则该类称为 抽象类 。 从实现的角度来讲,多态性可以划分为两类:静态多态性和 动态多态性 如果只想保留公共基类的一个复制,就必须使用关键字 virtual 把这个公共基类声明为虚基类。 C++中两种用户自定义的数据类型有结构体和 结构体类型变量 。 通过关键字 template 可以声明模板,通过关键字class(或typename)指定函数模板的类型参数,有几个类型参数就有几个类型关键字。 运算符重载要求保持其原来的操作数个数、结合性、 优先级 和语法结构。 类的静态成员分为静态数据成员和 静态函数成员 。 如果只想保留公共基类的一个复制,就必须使用关键字 virtual 把这个公共基类声明为虚基类。 在C++中,三种继承方式的说明符号为public、private和protected,如果不加说明,则默认的继承方式为 private 。 类和对象的关系可表述为:类是对象的抽象,而对象则是类的 实例 。 含有纯虚函数的类称为 抽象 类。 下列程序的功能是通过重载运算符“+=”,实现复数的相加赋值操作,请完善程序。 class Complex { double real,imag; public: Complex( ) { real=0; imag=0; } Complex( double r, double i) { real=r; imag=i; } Complex operator+=( Complex&x) { real +=x.real; imag +=x.imag; returnComplex(real,imag); } }; 下列程序第一行输出结果为8,第二行输出结果为9,请完善程序。 class B { int a,b; public: B(int aa=0,int bb=0) { a=aa; b=bb; } B operator+( B b,int x); void show( ) , cout< B operator+( B b, int x) { B r; r.a=_b.a+x_; r.b=_b.b+x-1_; return r; } void main( ) { B x(3,5), y(8,4),z1; z1=x+5; z1.show( ); } 以下程序实现动态数组类的功能,通过重载“=”实现动态数组对象的赋值,add函数实现元素的追加,试完成该程序。 class array { int num; float *p; public: array( ) { num=0; p=0; } array (int n, float *a) { num=n; if(num= =0) p=0; else { p=new float[num]; for(int i=0; i ~array( ) { if(p) delete []p; } array& operator=(array &arr) { if(num= =arr.num) { for(int i=0; i else { if(p) delete []p; p=new float[arr.num]; num=arr.num; for(int i=0; i returnthis; } void add(float x) { num++; float *pt=new float[num]; for(int i=0; i void show( ) { for(int i=0; i void main( ) { float x[4]={10,11,12,13}; array a1(2,x), a2; a2=a1; a1.show( ); a2.show( ); a2.add(14); a2.add(35); a2.show( ); } 下列程序的功能是通过重载运算符“==”,实现字符串的比较运算,请完善程序。 class String { char *st; public: int operator= =(String &); String( ); String(char *); ~String( ); void show( ) { cout< String ::String( )