【发布时间】:2016-02-21 22:28:47
【问题描述】:
我有一个函数 myfunc(),它需要参数 std::vector、std::queue 和一个指向 MyClass 对象的指针。
我的函数原型是:
void myFunc(vector<MyClass*>, std::queue<MyClass*>, MyClass*);
我不知道这是否是正确的原型声明。
要调用我的函数,我执行以下操作:
myFunc(myVector, myQueue, MyClassObj);
同样,我不确定这是否完全正确。
最后,我的功能如下:
void myFunc(vector<MyClass*> myVector, std::queue<MyClass*> myQueue, MyClass* myClassObj)
{
//do something
}
该函数应该在向量中搜索特定项目。如果没有找到,myClassObj 将被推送到队列中。否则,如果找到对象,它将调用另一个函数来设置 myClassObj 的参数之一的值。
我这样做对吗?
谢谢,
【问题讨论】:
-
如果您目前的方法有任何问题怎么办?
-
@BenjaminBannier Compiler 说“MyClassObj 未在此范围内声明
myQueue.push(myClassObj);” -
@noobgineer,你在函数返回后没有得到结果队列吗?那是你的问题吗?如果是,请用引用函数调用和值函数调用谷歌。
-
@BenjaminBannier 更正,我忘记更改函数中的变量名。更改后现在可以正常编译。注意自己,注意编译器输出。
标签: c++ parameter-passing function-prototypes