关于函数声明与函数参数中类定义的先后问题
简化模型代码如下,请高人指点...
- C/C++ code
//#include "stdafx.h"#include "stdio.h"void fun(test); //函数声明,这里要用到test类的参数//[!!]由于某些特殊原因,fun必须作为外部函数而不能作为test的成员函数!!class test{ //类声明public: int a; void (*v)(void); //函数指针. test(){ v = fun; }};void fun(test t){ t.a=1;}int main(){ test tt; fun(tt); return 0;}编译不能顺利通过.以下方法已经尝试但貌似都不行:
1\去掉 void fun(test); 的一行;
2\将void fun(test);中的test去掉;
3\去掉void fun(test);之后:
将fun的声明和test的声明顺序做调换.
[解决办法]
这不正好是 友元大显神威的地方吗?
[解决办法]
- C/C++ code
#include<iostream>using namespace std;class test;void fun(test); //函数声明,这里要用到test类的参数class test{ //类声明public: int a; void (*v)(test); //函数指针. test(){ v = fun; }};void fun(test t){ t.a=1;}int main(){ test tt; fun(tt); system("pause"); return 0;}