找出下面程序中的错误,改正,并运行得到输出结果。(C++)

(1)
#include<iostream.h>
class base {
int x;
public:
void setx(int n)
{x=n;}
void showx()
{cout<<x<<endl;}
};
class derived: base{
int y;
public:
void setxy(int n,int m)
{ setx(n);
y=m; }
void showxy()
{ cout<<x<<;
showx();
cout<<y<<endl;
}
};
main()
{ derived obj;
obj.setx(10);
obj.showx();
obj.setxy(20,30);
obj.showxy();
return 0;
}
(2)
#include <iostream.h>
class X{
int a;
public:
void setX (int x)
{a=x;}
void showX()
{cout<<"a="<<a<<endl;}
};
class Y{
int b;
public:
void setY( int x)
{b=x;}
void showY()
{cout<<"b="<<b<<endl;}
};
class Z:public X,private Y{
int c;
public:
void setZ(int x,int y)
{ c=x;
setY(y);
}
void showZ()
{ showY();
cout<<"c="<<c<<endl;
}
};
void main()
{ Z obj;
obj.setX(3);
obj.showX();
obj.setY(4);
obj.showY();
obj.setZ(6,8);
obj.showZ();
}

1、

#include <iostream>

using namespace std;

class base{

public:

     base(){

          setx(x);

     }

     void setx(int n){

          x=n;

     }

     void showx(){

          cout <<x<<endl;

     }

private:

     int x;

};

class derived:public base{

public:

     void setxy(int n,int m){

          setx(n);

          y=m;

     }

     void showxy(){

          showx();//x是base中的私有成员,不可调用。

          cout <<y<<endl;

     }

private:

     int y;

};

int main()

     derived obj;

     //obj.setx(10);  此处为用户程序,obj不可访问base中的成员  

     //obj.showx();     

     obj.setxy(20,30);

     obj.showxy();

     return 0; 

}

2、

#include <iostream>

using namespace std;

class X{

public:

     void setX(int x){

          a=x;

     }

     void showX(){

          cout <<"a="<<a<<endl;

     }

private:

     int a;

};

class Y{

public:

     void setY(int x){

          b=x;

     }

     void showY(){

          cout <<"b="<<b<<endl;

     }

private:

     int b;

};

class Z:public X,private Y{

public:

     void setZ(int x,int y){

          c=x;

          setY(y);

     }

     void showZ(){

          showY();

          cout<<"c="<<c<<endl;

     }

private:

     int c;

};

int main(){

     Z obj;

     //obj.setX(3);

     //obj.showX();

     //obj.setY(4);

     //obj.showY();

     obj.setZ(6,8);

     obj.showZ();

     return 0;

}

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-06-21
//1:
#include<iostream>
using namespace std;
class base {
int x;
public:
void setx(int n)
{x=n;}
void showx()
{cout<<x<<endl;}
};
class derived:public base{
int y;
public:
void setxy(int n,int m)
{ setx(n);
y=m; }
void showxy()
{
showx();
cout<<y<<endl;
}
};
int main()
{
derived obj;
obj.setx(10);
obj.showx();
obj.setxy(20,30);
obj.showxy();
return 0;
}
//2
#include <iostream>
using namespace std;
class X{
int a;
public:
void setX (int x)
{a=x;}
void showX()
{cout<<"a="<<a<<endl;}
};
class Y{
int b;
public:
void setY( int x)
{b=x;}
void showY()
{cout<<"b="<<b<<endl;}
};
class Z:public X,public Y{
int c;
public:
void setZ(int x,int y)
{ c=x;
setY(y);
}
void showZ()
{ showY();
cout<<"c="<<c<<endl;
}
};
void main()
{ Z obj;
obj.setX(3);
obj.showX();
obj.setY(4);
obj.showY();
obj.setZ(6,8);
obj.showZ();
}
第2个回答  2011-06-21
代码问题多;修正后如下:(注意:下面的base类和derived类分别放在两个头文件中,后面的主程序放在一个cpp文件中。base.h , derived.h , begin.cpp)

找出下面程序中的错误,改正,并运行得到输出结果。(C++)
void showxy(){ showx();\/\/x是base中的私有成员,不可调用。cout <<y<<endl;} private:int y;};int main(){ derived obj;\/\/obj.setx(10); 此处为用户程序,obj不可访问base中的成员 \/\/obj.showx();obj.setxy(20,30);obj.showxy();return 0;} 2、include <iostream> using nam...

请改正程序中的错误,使程序能输出正确的结果。
已经完成改错:include <stdio.h>int fun(int k){ int m=0, mc=0 ; while ((k >= 2) && (mc < 10)) { \/***found***\/ if ((k%13 == 0) || (k%17 == 0)) { m = m+ k; mc++; } k--; } return m; \/***found***\/} main () {...

C++这代码为什么答案错误?指出并改正,好的加分!!!
回答:您好!很高兴为您解答。 很明显这里的条件判断语句有问题,不符合程序设计者的目的。 第二个if语句,其目的是判断输入数是否可被5或6整除,而语句“(b==0&&c!=0)||(b!=0&&c==0)”则在判断此数是否是:能被5整除而不能被6整除的数,或,能被5整除而不能被6整除的数。那么显然这里如果输...

怎么检查C++程序中的错误
编译的时候出现错误,在编译器的下方的输出窗口上双击出现“error”的行会定位到代码中出错的地方。正确的代码如下:include <stdio.h> int main (){ int max(int grade_1,int grade_2,int grade_3);int grade_1,int grade_2,int grade_3,int grade_max;scanf ("%d,%d,%d",&grade_1,grad...

跪求大神找出此C++程序的error,并加以改正(最好自己先调试),本人新人...
看来你是新手哦,都是一些小错误,错误在我的程序中说明了,加油!!有希望成为高手的 include<iostream>using namespace std;int main(){ int year,month,date,result; cout<<"请输入年份:"<<endl; cin>>year; if(year%4==0&&year%100!=0||year%400==0) {\/\/这个地方添...

c++二级上机考试时已经执行了程序发现错误后再改正有没有效?扣不扣分...
2. 程序修改题的评分大约有下面一些特点:有结果输出到文件中的,先检查结果文件。如果结果文件内容完全正确,给满分,并不再检查修改内容。结果没有输出到文件,或结果文件不正确的,逐个错误语句进行检查。分数平均分配(如果共有两个错误,每修正一个得15分;共有三个错误,则每修正一个得10分……)...

一道c++编程题,写的一塌糊涂,看看错误,并帮忙改正。谢谢!
我按照你的基础改了一下程序,你看看吧 include<iostream> include<string.h> using namespace std ;class cstring{ char*str,(*p)[2];int size;public:cstring(char*s){ str=new char[strlen(s)+1];strcpy(str,s);size=0;p=NULL;} void count(){ char *ptmp=new char[strlen(str)+1...

初学C++请高手帮我看看这段代码有什么错误!程序目的是要求运行时从键盘...
1.class Time{ void set_time (void);void show_time(void);这两个函数根本没有定义 2.int set_time(void){ cin>>t.hour;cin>>t.minute;cin>>t.sec;} int show_time(void){ cout<<t,hour<<":"<<t.minute<<":"<<t.sec<<endl;} 这两个函数怎么能去访问别人的私有成员?建议...

c++程序分析题:写出下列程序的输出结果
第二个答案:5 4 第三个答案:结果2 第四个答案:z:3 第一个答案由于a++运算在后面,所以会先执行输出再+1 第二个答案由于是--b,运算在前面,就先做运算 第三个答案因为计算机非0即真,0是假,然后非一下就成真 第四个答案是三目运算符,?前面是条件,成真选:前面,否则选:后面 ...

VC++ 6.0如何显示错误位置
VC++ 6.0显示错误的位置:1、首先我们先编辑一个错误的程序。2、点击上边的运行按钮,弹出提示框,点击确定。3、由于该程序语法有错误,所以下面会提示有一个错误。4、双击出错提示行,那个错误原因会变成蓝色。5、回到上面程序的位置,在前面出错的地方有一个错误标识箭头。

相似回答