请在将问题标记为重复之前阅读该问题。
所以这就是我想要实现的目标。基本上我有一个字符串,最初包含一些值。
我已经将我的程序拆分为许多类的模块化。(你可以建议一个更好的方法来做到这一点 - 目前每个文件中都包含一个类)
所以说,例如我想用class1操作数据,然后修改后的字符串需要由class2操作,依此类推。
如。
初始条目是“hello world”
头等舱 - > “你好世界”
第二类 - > “H @ l @ o WORLD”
thiid class - > “#@ l @ o WORLD”
......等等
随处阅读全球变量是一个很大的问题。因此,牢记这一点,我可以在课程之间无缝分享的最佳方式
我还想过将字符串作为指向每个函数的指针,但我认为可能有更好的替代方法。请建议。
感谢您停下来阅读我的阙并帮助我。
答案 0 :(得分:1)
如果不知道为什么你想要这样做,很难回答。但是我没有看到将string
作为参考传递给每个类的问题,就像你建议的那样:
class StringModifier1 {
public:
void operator()(std::string& s) {
// modify s...
}
};
class StringModifier2 {
public:
void operator()(std::string& s) {
// modify s...
}
};
class StringModifier3 {
public:
void operator()(std::string& s) {
// modify s
}
};
int main() {
std::string myString = "hello world";
StringModifier1 modifier1;
StringModifier2 modifier2;
StringModifier3 modifier3;
modifier1(myString);
modifier2(myString);
modifier3(myString);
}
在某些情况下,您可能希望类存储指向字符串的引用或引用:
class StringModifier1 {
private:
std::string& s;
void func1() {
// modify s...
}
void func2() {
// modify s some more...
}
public:
StringModifier1(std::string& s) : s(s) {}
void execute() {
func1();
func2();
}
};
int main() {
std::string myString = "hello world";
StringModifier1 modifier1(myString);
modifier1.execute();
StringModifier2 modifier2(myString);
modifier2.execute();
StringModifier3 modifier3(myString);
modifier3.execute();
}
您可能希望一个类拥有并提供对该字符串的访问权限,而其他类具有指向所拥有类的指针或引用。