class TPoint
{
public:
TPoint(int x, int y) {X=x; Y=y;}
TPoint(TPoint & p);
~TPoint() {cout<<"gou xi han shu\n";}
int Xcoord() {return X;}
int Ycoord() {return Y;}
private:
int X, Y;
};
TPoint::TPoint(TPoint & p)
{
X = p.X;
Y = p.Y;
cout<<"kao bei chu shi hua gou zao han shu\n";
}
void main()
{
TPoint P1(5, 7);
TPoint P2(P1);
cout<<"P2="<<P2.Xcoord()<<","<<P2.Ycoord()<<endl;
}
这段代码在VC++里编译出错,为什么呢???请帮忙看看呀!
Compiling...
testConst.cpp
c:\program files\microsoft visual studio\myprojects\testconst\testconst.cpp(31) : fatal error C1010: unexpected end of file while looking for precompiled header directive
Error executing cl.exe.
11 个解决方案
#1
类的声明最后要加“;”
#2
在第一行加
#include "stdafx.h"
这是vc的预编译机制。
#include "stdafx.h"
这是vc的预编译机制。
#3
有没有搞错那?
我执行得好好的,输出如下:
kao bei chu shi hua gou zao han shu
P2=5,7
gou xi han shu
gou xi han shu
Press any key to continue
不是你的头文件没有了吧?
我执行得好好的,输出如下:
kao bei chu shi hua gou zao han shu
P2=5,7
gou xi han shu
gou xi han shu
Press any key to continue
不是你的头文件没有了吧?
#4
scklotz(晓春)
谢谢,你说对了,但"stdafx.h"是个什么东东啊?
为什么另外一段程序没有加这个包含文件却正常编译了呢:
#include <iostream.h>
class R
{
public:
R(int r1, int r2) { R1=r1; R2=r2; }
void print();
void print() const;
private:
int R1, R2;
};
void R::print()
{
cout<<R1<<","<<R2<<endl;
}
void R::print() const
{
cout<<R1<<";"<<R2<<endl;
}
void main()
{
R a(5, 4);
a.print();
const R b(20, 52);
b.print();
}
为什么这个被打印了两次呢???---"gou xi han shu"
谢谢,你说对了,但"stdafx.h"是个什么东东啊?
为什么另外一段程序没有加这个包含文件却正常编译了呢:
#include <iostream.h>
class R
{
public:
R(int r1, int r2) { R1=r1; R2=r2; }
void print();
void print() const;
private:
int R1, R2;
};
void R::print()
{
cout<<R1<<","<<R2<<endl;
}
void R::print() const
{
cout<<R1<<";"<<R2<<endl;
}
void main()
{
R a(5, 4);
a.print();
const R b(20, 52);
b.print();
}
为什么这个被打印了两次呢???---"gou xi han shu"
#5
scklotz(晓春)说得对,如果你在vc下使用创建一个工程,并且这个工程使用了mfc
那你必须包含stdafx.h文件,如果在bc3.1等控制台下没有这个问题
那你必须包含stdafx.h文件,如果在bc3.1等控制台下没有这个问题
#6
tc113(萧峰)
哦,那为什么这个被打印了两次呢???---"gou xi han shu"
哦,那为什么这个被打印了两次呢???---"gou xi han shu"
#7
这个程序什么问题呀?
我用VC6写的程序在xch2h.yeah.net/prog/test.rar
我用VC6写的程序在xch2h.yeah.net/prog/test.rar
#8
TPoint P1(5, 7);
TPoint P2(P1);
你定义了两个对象,被析构了两次。自然打印了两次。
tc113(萧峰) (2002-1-14 17:16:48) 得0分
scklotz(晓春)说得对,如果你在vc下使用创建一个工程,并且这个工程使用了mfc
那你必须包含stdafx.h文件,如果在bc3.1等控制台下没有这个问题
这其实呢并不是一个问题,这是vc为了加快编译速度而采取的一种缺省机制。
你可以设置不需要这么做,
在project -> setting -> c/c++ -> precompile
select : not precompile head file.
就ok 了。
TPoint P2(P1);
你定义了两个对象,被析构了两次。自然打印了两次。
tc113(萧峰) (2002-1-14 17:16:48) 得0分
scklotz(晓春)说得对,如果你在vc下使用创建一个工程,并且这个工程使用了mfc
那你必须包含stdafx.h文件,如果在bc3.1等控制台下没有这个问题
这其实呢并不是一个问题,这是vc为了加快编译速度而采取的一种缺省机制。
你可以设置不需要这么做,
在project -> setting -> c/c++ -> precompile
select : not precompile head file.
就ok 了。
#9
因为你生成了两个对象实例
#10
是的,我也这样做过,不过一般我把这个头文件加进去
#11
哦,明白了,谢谢各位的帮助!!!我马上加分。
#1
类的声明最后要加“;”
#2
在第一行加
#include "stdafx.h"
这是vc的预编译机制。
#include "stdafx.h"
这是vc的预编译机制。
#3
有没有搞错那?
我执行得好好的,输出如下:
kao bei chu shi hua gou zao han shu
P2=5,7
gou xi han shu
gou xi han shu
Press any key to continue
不是你的头文件没有了吧?
我执行得好好的,输出如下:
kao bei chu shi hua gou zao han shu
P2=5,7
gou xi han shu
gou xi han shu
Press any key to continue
不是你的头文件没有了吧?
#4
scklotz(晓春)
谢谢,你说对了,但"stdafx.h"是个什么东东啊?
为什么另外一段程序没有加这个包含文件却正常编译了呢:
#include <iostream.h>
class R
{
public:
R(int r1, int r2) { R1=r1; R2=r2; }
void print();
void print() const;
private:
int R1, R2;
};
void R::print()
{
cout<<R1<<","<<R2<<endl;
}
void R::print() const
{
cout<<R1<<";"<<R2<<endl;
}
void main()
{
R a(5, 4);
a.print();
const R b(20, 52);
b.print();
}
为什么这个被打印了两次呢???---"gou xi han shu"
谢谢,你说对了,但"stdafx.h"是个什么东东啊?
为什么另外一段程序没有加这个包含文件却正常编译了呢:
#include <iostream.h>
class R
{
public:
R(int r1, int r2) { R1=r1; R2=r2; }
void print();
void print() const;
private:
int R1, R2;
};
void R::print()
{
cout<<R1<<","<<R2<<endl;
}
void R::print() const
{
cout<<R1<<";"<<R2<<endl;
}
void main()
{
R a(5, 4);
a.print();
const R b(20, 52);
b.print();
}
为什么这个被打印了两次呢???---"gou xi han shu"
#5
scklotz(晓春)说得对,如果你在vc下使用创建一个工程,并且这个工程使用了mfc
那你必须包含stdafx.h文件,如果在bc3.1等控制台下没有这个问题
那你必须包含stdafx.h文件,如果在bc3.1等控制台下没有这个问题
#6
tc113(萧峰)
哦,那为什么这个被打印了两次呢???---"gou xi han shu"
哦,那为什么这个被打印了两次呢???---"gou xi han shu"
#7
这个程序什么问题呀?
我用VC6写的程序在xch2h.yeah.net/prog/test.rar
我用VC6写的程序在xch2h.yeah.net/prog/test.rar
#8
TPoint P1(5, 7);
TPoint P2(P1);
你定义了两个对象,被析构了两次。自然打印了两次。
tc113(萧峰) (2002-1-14 17:16:48) 得0分
scklotz(晓春)说得对,如果你在vc下使用创建一个工程,并且这个工程使用了mfc
那你必须包含stdafx.h文件,如果在bc3.1等控制台下没有这个问题
这其实呢并不是一个问题,这是vc为了加快编译速度而采取的一种缺省机制。
你可以设置不需要这么做,
在project -> setting -> c/c++ -> precompile
select : not precompile head file.
就ok 了。
TPoint P2(P1);
你定义了两个对象,被析构了两次。自然打印了两次。
tc113(萧峰) (2002-1-14 17:16:48) 得0分
scklotz(晓春)说得对,如果你在vc下使用创建一个工程,并且这个工程使用了mfc
那你必须包含stdafx.h文件,如果在bc3.1等控制台下没有这个问题
这其实呢并不是一个问题,这是vc为了加快编译速度而采取的一种缺省机制。
你可以设置不需要这么做,
在project -> setting -> c/c++ -> precompile
select : not precompile head file.
就ok 了。
#9
因为你生成了两个对象实例
#10
是的,我也这样做过,不过一般我把这个头文件加进去
#11
哦,明白了,谢谢各位的帮助!!!我马上加分。