0

在我的“.h”文件中,我定义了:

    example(CQueue* queue = NULL, double code = 0);

在我的“.cpp”文件的 2 种不同方法中,我必须使用:

    example(queue);

    example(code2);

在这两种情况下我都会出错。我不想超载。正在定义它:

    example(CQueue* queue, double code = 0);

唯一的办法?或者我可以按照当前定义的方式定义它吗?

4

2 回答 2

2

您可以这样定义它,但不要指望第二次调用会起作用。第一个应该没问题,前提queueCQueue*. 如果它是一个对象,您需要传递它的地址:&queue

您必须将第二个调用更改为:

example(NULL, code2);

或者,如您所说,超载。

于 2012-08-02T21:13:38.880 回答
1

如果要为 传递特定值code,则还必须为前面的可选参数传递一个值,即使它们在方法签名中被赋予了默认值。

只需明确传递您定义为默认值的内容:example(NULL, code2);

你的定义很好,但如果你想也能调用example(code2),那么你必须重载。

example(queue);应该根据queue.

于 2012-08-02T21:14:39.157 回答