在我所做的最后几次快速编码挑战中,这个问题一直困扰着我。
我有一个名为Hourglass的类,它在构造函数中使用char
表示大写字母(例如'D'),并且有一个方法print()
,其打印类似于:
AAAAAAA
BBBBB
CCC
D
CCC
BBBBB
AAAAAAA
打印看起来像是:
void Hourglass::print() const
{
final int centreCol = (mFinalChar - 'A');
for(char c = 'A'; c <= mFinalChar; ++c) {
std::cout << computeLine(centreCol, c - 'A', c) << std::endl;
}
for (char c = mFinalChar - 1; c >= 'A'; --c) {
std::cout << computeLine(centreCol, c - 'A', c) << std::endl;
}
}
使用:
std::string computeLine(int centreColumn, int initialBlankSpaces, char characterToPrint) const;
computeLine()
应该在哪里?它应该是类的私有成员(它不需要包含在对象中的任何信息)吗?它应该在类外的匿名命名空间中吗?我应该以某种方式避免使用这些方法吗?
我知道这可能是一个有点自以为是的主题,但我确信至少有一些争论可以指出我可以下定决心。