我到处都找过了,但在这里我无法找到我的确切问题的明确答案。或者我找到了答案,但我没有完全理解。
我有 3 个对象:
Foo Object1;
Foo Object2;
Foo Object3;
我有一个函数,用户可以从与对象相关的字符串列表中进行选择。当用户输入“B”时,我现在想对 Object2 执行操作。
这基本上就是我所拥有的。
string getOption()
{
string option;
cout << "Option Menu" << endl;
cout << "A - Option 1" << endl; // Object1
cout << "B - Option 2" << Lendl; // Object2
cout << "C - Option 3" << endl; // Object3
cin >> option;
return option;
现在我有了输入,我想对该对象执行多个选项。像这样的东西:
void modifyFooString(foo userSelectedObject)
{
// Local variables
string userInput;
userInput = readInput(); // Function that reads valid input
userSelectedObject.setMethod(userInput);
}
但功能众多。它处于 while 循环中,因此我需要修改对象,然后在用户想要更改其他对象时重新提示他们。
看这道题的时候,我觉得可以用指针。例如:
void getOption(Foo* &choice)
{
string option;
cout << "Option Menu" << endl;
cout << "A - Option 1" << endl; // Object1
cout << "B - Option 2" << Lendl; // Object2
cout << "C - Option 3" << endl; // Object3
cin >> option;
if (option == "A")
choice = &Object1;
else if (option == "A")
choice = &Object2;
if (option == "A")
choice = &Object3;
}
理想情况下,我现在可以在执行 getOption()
函数的函数中使用指针来修改所选对象。但是,当我尝试像这样实现它时,它就是行不通。
如何返回可用于修改选定对象的指针?
谢谢
最佳答案
你可能会取得更大的成功
if (option == "A")
choice = &Object1;
else if (option == "B")
choice = &Object2;
else if (option == "C")
choice = &Object3;
您还应该阐明“它只是不起作用”的实际含义。
既然你想返回一些东西,那么使用 C++ return 语句更自然。
Foo* getOption()
{
...
if (option == "A")
return &Object1;
else if (option == "B")
return &Object2;
else if (option == "C")
return &Object3;
关于c++ - 如何返回指向对象的指针以便在访问对象方法的函数中使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31912538/