在我的“.h”文件中,我定义了:
example(CQueue* queue = NULL, double code = 0);
在我的“.cpp”文件的 2 种不同方法中,我必须使用:
example(queue);
example(code2);
在这两种情况下我都会出错。我不想超载。正在定义它:
example(CQueue* queue, double code = 0);
唯一的办法?或者我可以按照当前定义的方式定义它吗?
在我的“.h”文件中,我定义了:
example(CQueue* queue = NULL, double code = 0);
在我的“.cpp”文件的 2 种不同方法中,我必须使用:
example(queue);
example(code2);
在这两种情况下我都会出错。我不想超载。正在定义它:
example(CQueue* queue, double code = 0);
唯一的办法?或者我可以按照当前定义的方式定义它吗?
您可以这样定义它,但不要指望第二次调用会起作用。第一个应该没问题,前提queue是CQueue*. 如果它是一个对象,您需要传递它的地址:&queue。
您必须将第二个调用更改为:
example(NULL, code2);
或者,如您所说,超载。
如果要为 传递特定值code,则还必须为前面的可选参数传递一个值,即使它们在方法签名中被赋予了默认值。
只需明确传递您定义为默认值的内容:example(NULL, code2);
你的定义很好,但如果你想也能调用example(code2),那么你必须重载。
example(queue);应该根据queue.