类中函数参数如果数量比较多,且有些有缺省值时,VC好像不能正确处理,比如
1.只在.h中写缺省值,那么VC中在CLASS VIEW窗口查看(鼠标放在该函数上,会显示整个函数),不能包含所有的参数,只有前面几个,可能使程序的后几个参数缺少在.h中写的缺省值,使程序运行不正确.
2.只在.cpp中写缺省值,那么在CLASS VIEW中双击该函数,出现VC找不到函数过程(.CPP中的具体函数).
3.在.h和.cpp中都写缺省值,编译提示函数重复DEFINE.
问
1.以上问题的原因
2.缺省值该在哪写,才不会出现以上问题
3.不同类的参数如果数量比较多,是否需按照参数类型有个顺序排列
函数参数的缺省值只能在声明函数的时候写,实现函数的时候不能写,也就是说要在 .h 中写而不能在 .cpp 中写。
至于在使用 IDE 的某些功能时的不正常现象,没办法,习惯可就好了。
不用管 类显示, 应该在函数说明的地方(头文件定义缺省值, 否则其它地方调用(包含此头文件的其它CPP) 将得不到缺省值.
PS: 如何骗类向导:
再在头文件里声明一个不带缺省值的一模一样的函数. 用 #if 括起来
#if 0
void func(int a, int b, int c);
#endif
void func(int a = 0, int b = 0, int c = 0);
不会影响到编译后的程序的运行效果的,请放心!
我个人的习惯是手动添加函数和类的定义和实现。