用数组作为参数的函数,如何赋默认值

kun1234567 2007-07-25 08:30:32
CB6

TImage* g_imImage[100];
TImage* g_imActivedImage[100];

int Findindex(TImage* Image,TImage ImageA[]);

我现在想给Findindex()的ImageA[]默认参数值,我的写法如下:
一:Findindex(TImage* Image,TImage* ImageA[] = g_imImage);
二:Findindex(TImage* Image,TImage** ImageA = &g_imImage);
都无法通过...请问指针数组在赋默认值的时候有什么特别的地方吗?

...全文
341 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
kun1234567 2007-07-26
  • 打赏
  • 举报
回复
to:BenLeak(摇摆人)

如果要写一个满足我要求的函数(带默认值),应该怎么写呢
在声明的时候这样写?
const TImage* g_imImage[100];
kun1234567 2007-07-26
  • 打赏
  • 举报
回复
to :LuoGD(准备休息...)

Findindex(TImage* Image,TImage* ImageA[] = g_imImage);
[C++ Error] Unit1.h(17): E2231 Member TForm1::ImageA cannot be used without an object

void geta(int tta, long *a[] = p)
[C++ Error] Unit1.h(18): E2231 Member TForm1::p cannot be used without an object
我又试了下,不行。

本来我的Findindex()是直接操作全局变量的。后来由于需要,要扩展下使用范围,但是不想对原来的程序做太大的改动,于是就想赋参数默认值。结果如你所见...

我用重载先对付过去了,但是原因还是不知道...

LuoGD 2007-07-25
  • 打赏
  • 举报
回复
一:Findindex(TImage* Image,TImage* ImageA[] = g_imImage);
应该是可以的;

我测试过如下语句,能编译通过:
long* p[10];

void geta(int tta, long *a[] = p)
{

}
BenLeak 2007-07-25
  • 打赏
  • 举报
回复
具体一点的应该是常量或者常量表达式
BenLeak 2007-07-25
  • 打赏
  • 举报
回复
好像默认值要求是常数吧,使用变量是不行的
kun1234567 2007-07-25
  • 打赏
  • 举报
回复
三、Findindex(TImage* Image,TImage* ImageA[] = g_imImage[]);//也试过了,不行

13,874

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧