程序出错我没办法。请看
#include <windows.h>
class TUser {
int sum(int a , int b ) ;
}
int TUser::sum(int a , int b ) {
return a + b ;
}
void main() {
int i ;
for ( i = 0 ; i < 100 ; i ++ )
printf("%d",i);
}
提示
aaa.exe - 4 error(s), 0 warning(s)不起
问题点数:20、回复次数:14Top
1 楼azuo_lee(宿醉)回复于 2001-11-19 23:40:56 得分 12
class定义完了要加一个分号。Top
2 楼IceWall(谁敢打我)回复于 2001-11-19 23:48:51 得分 8
下面是我帮你调过的。有两处改动。
#include <windows.h>
#include <stdio.h>
//^^^^^^^^^^^^^^^^
class TUser {
int sum(int a , int b ) ;
} ;
// ^^^^
int TUser::sum(int a , int b ) {
return a + b ;
}
void main() {
int i ;
for ( i = 0 ; i < 100 ; i ++ )
printf("%d",i);
//printf needs stdio.h
}
加分吧。。。
Top
3 楼Nizvoo()回复于 2001-11-19 23:51:20 得分 0
对了。
有四个错误呢?Top
4 楼Nizvoo()回复于 2001-11-19 23:52:38 得分 0
--------------------Configuration: aaaa - Win32 Debug--------------------
Compiling...
aaaa.cpp
Linking...
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/aaaa.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
aaaa.exe - 2 error(s), 0 warning(s)Top
5 楼Nizvoo()回复于 2001-11-19 23:53:19 得分 0
另外如何创建对象?Top
6 楼azuo_lee(宿醉)回复于 2001-11-19 23:58:23 得分 0
另外两个错误是工程类型不对。必须是Win32 Console Application,不能是GUI程序。
创建对象?什么对象?COM对象?Top
7 楼Nizvoo()回复于 2001-11-19 23:59:52 得分 0
我用的是win32 application.....
class只是声明类。就是声明对象。Top
8 楼Nizvoo()回复于 2001-11-20 00:04:00 得分 0
搞定了。Top
9 楼azuo_lee(宿醉)回复于 2001-11-20 00:07:33 得分 0
这个意思啊。
#include <windows.h>
#include <stdio.h>
class TUser
{
public: // 声明为public,这样函数可以被别人调用
int sum(int a , int b ) ;
};
int TUser::sum(int a , int b )
{
return a + b ;
}
void main()
{
//int i ;
//for ( i = 0 ; i < 100 ; i ++ )
//printf("%d",i);
TUser objUserOnStack; // 在栈上创建一个对象
int sum1 = objUserOnStack.sum(1, 2); // 调用对象的方法
printf("sum of 1, 2 is %d\n", sum1);
TUser * pobjUserOnHeap = new TUser; // 在堆上创建一个对象
int sum2 = pobjUserOnHeap->sum(2, 3);
printf("sum of 2, 3 is %d\n", sum2);
delete pobjUserOnHeap; // 删除对象
}Top
10 楼Nizvoo()回复于 2001-11-20 00:10:14 得分 0
#include <windows.h>
#include <stdio.h>
//^^^^^^^^^^^^^^^^
class Cuser {
int sum(int a , int b ) ;
} ;
// ^^^^
int Cuser::sum(int a , int b ) {
return a + b ;
}
void main() {
int s, i ,j;
Cuser user ;
for ( i = 0 ; i < 100 ; i ++ ) {
j = i + 1 ;
s=user.sum(i,j);
printf("%d\t",s);
}
我的代友为啥不对???Top
11 楼Nizvoo()回复于 2001-11-20 00:12:28 得分 0
azuo_lee()
在堆上可以删除对象。在栈上什么时候清除。莫不要等程序关闭????Top
12 楼Nizvoo()回复于 2001-11-20 00:23:12 得分 0
知道。
但public:不写不能被调用,写了有什么作用。。呵呵。。。????Top
13 楼azuo_lee(宿醉)回复于 2001-11-20 00:25:27 得分 0
你的代码少了public声明。却省情况下,类成员是private的,不能被别人使用。
栈上的对象离开作用域时自动删除。一般是在函数退出的时候。对于类对象,释放栈空间的同时系统还会生成代码调用析构函数。Top
14 楼Nizvoo()回复于 2001-11-20 00:32:13 得分 0
那还是用栈吧。
用起来跟变量一样。方便。
我以为要写aa=new object呵呵。Top




