用VC++6.0与VS2010运行结果不一样

同样的代码,在VC++6.0下面能输出结果,但再VS2010下就不能输出结果,请教高手,代码如下
#include<iostream.h>
class M
{
public:
M()
{
x=y=0;
}
M(int i,int j)
{
x=i;
y=j;
}
void copy(M &m);
void setxy(int i,int j)
{
x=i;
y=j;
}
void print()
{
cout<<x<<","<<y<<endl;
}
private:
int x,y;
};
void M::copy(M &m)
{
x=m.x;
y=m.y;
}
void fun(M m1,M &m2);
void main()
{
M p(5,7),q;
q.copy(p);
fun(p,q);
p.print();
q.print();
system("pause"); //这个只是在用VS2010编写加上的

}
void fun(M m1,M &m2)
{
m1.setxy(12,25);
m2.setxy(22,25);
}

少了头文件stdafx.h
这个头文件翻译过来就是 标准应用程序框架延伸
VC6.0 是98年出的 那时候国际标准还没出来,所以6.0对C++的标准支持很低的。听说才不到70%
2010是最新的,所以对标准支持就高点
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-04-14
#include<iostream.h>
改成
#include<iostream>
using namespace std;追问

改了,但是还是没有用

追答

这个程序改过来后就没问题了。你的不能输出结果的情况是什么样的?要不把运行时输出栏中的内容粘贴过来看看,或者截张图。

追问

在VC++6.0里面的输出结果是:
5,7
22,25
请按任意键继续。。。
在VS2010里面输出结果是:
请按任意键继续。。。

顺便告诉我一下VS2010里面的编译和运行的快捷键是什么,我觉得好像是我编译和运行弄错了,谢谢

追答

没有单独的编译,就只有一个运行键,包含了编译和运行。你在两个print语句处设置断点看看,看看程序在那后是怎么走的。

第2个回答  2011-04-14
#include<iostream.h>
class M
{
public:
M()
{
x=y=0;
}
M(int i,int j)
{
x=i;
y=j;
}
M(M &m);
void setxy(int i,int j)
{
x=i;
y=j;
}
void print()
{
cout<<x<<","<<y<<endl;
}
private:
int x,y;
};
M::M(M &m)
{
x=m.x;
y=m.y;
}
void fun(M m1,M &m2);
void main()
{
M p(5,7);
M q=p;
fun(p,q);
p.print();
q.print();
}
void fun(M m1,M &m2)
{
m1.setxy(12,25);
m2.setxy(22,25);
}
看看这样行不。
相似回答