将非静态数据成员作为默认参数传递给方法
Passing non-static data members as default arguments to methods
我的类具有在各种情况下可能有用的方法,因此我希望它们独立于参数。代码:
.h
std::string integerPart;
std::string remainderPart;
void removeZeroesFromBeginning(std::string &str = integerPart);
void removeZeroesFromEnd(std::string &str = remainderPart);
.cpp
void UltimateNumber::removeZeroesFromBeginning(string &str){...}
void UltimateNumber::removeZeroesFromEnd(string &str){...}
我应该如何宣布它?我尝试的一切都给了我编译错误。
解决方案是超载,而不是默认函数参数。
std::string integerPart;
std::string remainderPart;
void removeZeroesFromBeginning(std::string &str);
void removeZeroesFromBeginning() {
removeZeroesFromBeginning(integerPart);
}
void removeZeroesFromEnd(std::string &str);
void removeZeroesFromEnd() {
removeZeroesFromEnd(remainderPart);
}
超负荷解决方案会处理细节。用户要么通过输出参数,要么您通过类成员。
如果我正确理解您(涉及很多猜测(,我会说您应该将UltimateNumber类的实现与零删除功能的逻辑实现分开。沿着:
的线class MyFancyNumberManipulations {
public:
static void removeZeroesFromBeginnging(std::string& v);
...
};
void UltimateNumber::removeZeroesFromBeginning(string& str) {
MyFancyNumberManipulations(integerPart);
}
相关文章:
- 有条件地将默认参数传递给函数(使用"?"运算符)
- 将私有数据成员作为默认参数传递给该类的公共方法时出错
- 在一行中将默认类型值上的指针作为参数传递
- 如何将值传递给其参数(默认参数)
- 为什么将类作为参数传递需要默认构造函数
- C++中出现意外的编译错误:将默认值传递给函数参数
- 如何从类构造函数传递值C++作为此类方法的默认参数?
- C++ 在C++中通过引用将枚举作为默认参数传递时出错
- 将非静态数据成员作为默认参数传递给方法
- 在构造函数 QT 创建器(继承类)中传递默认参数
- 将带有默认值的函数作为忽略它们的参数传递
- 如何传递 std::shared_ptr <PureVirtualClass>的默认参数
- 将新对象作为默认参数传递给构造函数
- 传递将默认参数值作为模板参数的函数
- (C++)将"this"作为默认参数传递给静态方法
- 将类成员 (Map) 的指针作为默认参数传递给另一个类方法
- 将变量名作为字符串传递给具有默认参数的函数
- 如何将其他类型的默认参数传递给参数
- 将std::map作为默认参数传递
- 将std::forward作为默认参数传递