xiaoye
发表于 2016-1-17 00:45:45
Antergone 发表于 2016-1-16 22:26 static/image/common/back.gif
额,楼主看了你的代码,我要以一个程序员的角度来告诉你几个问题。
1.C语言 不需要方法申明也可以实现。但 ...
结构体里面不能写函数,通过函数内嵌结构体,这样相当将上面的两个变量变相定义了,求思路
xiaoye
发表于 2016-1-17 00:46:17
xiaoye 发表于 2016-1-17 00:33 static/image/common/back.gif
楼上也说了,可以通过结构体实现类,我去,早知道用结构体写好了,泪奔。这样更加接近类
...
这方法貌似行不通
冰琥珀
发表于 2016-1-17 01:17:40
#include "stdafx.h"
struct OPPClass{
int a;
int b;
int rootB(int a, int b);
};
int OPPClass::rootB(int a, int b)
{
return a + b;
}
int _tmain(int argc, _TCHAR* argv[])
{
OPPClass *pObj = new OPPClass;
printf("result = %d\n", pObj->rootB(1, 2));
delete pObj;
return 0;
}
xiaoye
发表于 2016-1-17 01:30:17
冰琥珀 发表于 2016-1-17 01:17 static/image/common/back.gif
#include "stdafx.h"
struct OPPClass{
明天试试。明天我改改
Antergone
发表于 2016-1-17 03:50:56
冰琥珀 发表于 2016-1-17 01:17
#include "stdafx.h"
struct OPPClass{
这是 vc吧? _tmain 我记得是个宏
Antergone
发表于 2016-1-17 03:53:35
本帖最后由 Antergone 于 2016-1-17 03:58 编辑
xiaoye 发表于 2016-1-17 01:30
明天试试。明天我改改
函数指针也能做到啊
#include "stdio.h"
struct TEST
{
int x,y;
int (*func)(int,int);
};
int add(int x,int y)
{
return x+y;
}
int main(int argc, char const *argv[])
{
struct TEST test;
test.func=&add;
printf("func(1,2)=%d",test.func(1,2));
return 0;
}
Antergone
发表于 2016-1-17 03:58:04
冰琥珀 发表于 2016-1-17 01:17
#include "stdafx.h"
struct OPPClass{
你这个不是C吧,这么写是C++的写法了
冰琥珀
发表于 2016-1-17 10:23:39
本帖最后由 冰琥珀 于 2016-1-17 10:38 编辑
Antergone 发表于 2016-1-17 03:58
你这个不是C吧,这么写是C++的写法了
在VS下编译的,应该那玩意兼容C++了,在linux下用gcc编译不通过,不过函数指针是可行的
xiaoye
发表于 2016-1-17 11:09:13
Antergone 发表于 2016-1-17 03:58 static/image/common/back.gif
你这个不是C吧,这么写是C++的写法了
c++的
xiaoye
发表于 2016-1-17 11:10:48
Antergone 发表于 2016-1-17 03:53 static/image/common/back.gif
函数指针也能做到啊
#include "stdio.h"
struct TEST
厉害厉害,涨知识了