我有一个返回CString并将其放入变量的方法,但是这个变量是方法中的参数。有没有更好的方法将方法的返回值分配给变量?
示例:
CString foo = "foo";
foo = MakeBar(foo);
答案 0 :(得分:4)
你的代码很好。编写不修改其参数的函数是常见的(通常是好的做法)。在您的情况下,您想要覆盖foo
,因此您必须将结果分配给自己。
这个成语在其他具有不可变字符串的语言中非常非常。
答案 1 :(得分:3)
通过引用将foo传递给函数。以这种方式,它被理解为它将是输入/输出参数。
void MakeBar(CString &foo)
{
if(foo == "foo")
foo = "bar";
}
//...
CString foo = "foo";
MakeBar(foo);
答案 2 :(得分:0)
问题是您的MakeBar()
功能通常使用,如何实施。如果有foo2 = MakeBar(foo1)
次呼叫的相当大一部分,那么最好有一个返回值。如果您确定MakeBar()
的输出始终替换输入,那么void MakeBar(CString &foo)
表单会更好。