c++读程序问题

来源:百度知道 编辑:UC知道 时间:2024/05/27 14:30:36
下列程序的输出结果是
#include <iostream.h>
class Myclass
{
public:
Myclass(int i=0,int j=0)
{x=i;
y=j;
}
void show(){cout<<"x="<<x<<" "<"y="<<y<<endl;}
void show()const{cout<<"x="<<" "<<"y="<<y<<endl;}
privated:
int x;
int y;
};
void main()
{
Myclass my1(3,4);
const my2(7,8);
my1.show();
my2.show();
}
书上给出答案为x=8,y=7;x=7,y=8
请高手详细讲解下 谢谢

书上的答案是错的
程序也是有问题的,改为下面的:

#include <iostream.h>
class Myclass
{
public:
Myclass(int i=0,int j=0)
{x=i;
y=j;
}
void show(){cout<<"x="<<x<<" y="<<y<<endl;}
void show()const{cout<<"x="<<x<<" - "<<"y="<<y<<endl;}
private:
int x;
int y;
};
void main()
{
Myclass my1(3,4);
const Myclass my2(7,8);
my1.show();
my2.show();
}

运行结果 x=3 y=4
x=7 - y=8

注意点是第一个调用的函数是void show()
第二个调用的是void show()const

因为const函数只能由const类调用。一般类不能调用const函数。
书上可能要传授的知识就是这,你注意这点就行了。

首先,这个程序错误很多,这个是书上的程序么?如果是的话,建议不要看这本书了。
1. privated 应为 private
2. show()里"y="前面的<<运算符少了一个<
3. main里定义my2的时候少了类型声明,应为const Myclass my2(7,8);

其次,输出结果是
x=3 y=4
x= y=8
而不是如你