2013-10-13 98 views
-3

如果我声明了一个函数:C++中的指针功能参数

vector<int> & call(string *target) 

我应该怎样使用目标在功能上与另一个字符串进行比较?例如:

string str; 
if(str == //string in target){ 
... 
} 

由于&target,或者干脆target?另外,该如何回报?我假设它应该是:

return &some_vector; 

因为那是函数声明中的类型。最后,相反呢?那就是:

vector<int> & call(string &target) 

当在功能和想要使用的字符串,是化繁为简:

*target 
+1

请阅读初学C++教程。 – 2013-10-13 21:40:03

回答

2

关于你的第一个问题是

if(str == *target){ 

关于你的第二个问题我的建议就是,不。它看起来像你试图返回一个局部变量的引用。这是一个众所周知的新手错误,只会导致程序崩溃。

关于第三个问题是

if(str == target){ 
+0

只是让我相信这个你说如果函数声明有如果(STR == *目标) 作品 &目标 作为参数,然后 ? 谢谢你对最后部分的回答。我的代码确实崩溃了 – user2876980

+1

不,完全没有。对困惑感到抱歉。最初我错过了你的第三个问题。 – john

0

您需要取消引用指针获取对象。也就是说,使用*

if (str == *target) { 

而且,回报应该怎么看?

您正在返回一个引用,而不是指针。这意味着你只需要简单地返回对象的名称:

return some_vector; 

最后,怎么样相反?

如果target是一个引用(而不是指针),那么您只需使用该对象的名称即可。没有涉及这个的贬值。