【发布时间】:2015-04-25 00:27:57
【问题描述】:
我有一个类,其构造函数如下所示:
Chunker::Chunker(int chunkSizeX, int chunkSizeY){
chunkX = chunkSizeX;
chunkY = chunkSizeY;
}
我想为用户提供让chunkSizeY 或chunkSizeX 具有默认值(需要由Chunker 计算)的能力。
IE,所以他们可能会传入一个“AUTO”关键字或其他东西,以便构造函数知道。
我可以这样做吗:
Chunker::Chunker(int chunkSizeX, char chunkSizeY)
Chunker::Chunker(char chunkSizeX, int chunkSizeY)
Chunker::Chunker(char chunkSizeX, char chunkSizeY)
所以如果它为一个或两个值获得char,它知道自动计算它们吗?
我确定他们一定是我还不知道的更好/标准的方式......?
【问题讨论】:
-
是的,你可以这样做,不,我知道没有更好的方法。你在问什么?
-
你描述的方式到底有什么问题?
-
如果这是“正常”方式,我对此没有任何问题。我是 C++ 的一个相对新手,它“感觉”就像我不想用“标准”方法做它,或者也许有更简洁的方法?
-
从
char投射到int是一个糟糕的计划吗? -
@Beta 没有更好的方法?这种方法根本不是很有表现力,肯定会让我感到困惑。我建议使用
boost::optional,或者使用 Paul Evans 描述的构建器模式。另一种常见的方法是使用指针,其中空指针表示省略的参数,但我发现这也没有表达力。
标签: c++ overloading default-value optional-parameters