看到我有一个带有“添加”功能的文件,如下所示
#pragma once;
class fun {
boolean s_function(){
if(s.size() > 2) {
return true;
}
return false;
}
};
然后我有另一个文件
#include <iostream>
using namespace std;
int main() {
fun x;
string s = "wtf";
cout << x.s.s_function() << endl;
}
我可以看到x.s.s_function()
显然是如此奇怪而且无法奏效。那么如何在第二个文件中实际调用没有参数的函数呢?
答案 0 :(得分:0)
s_function是类fun的成员,所以正确的方法是:
bool s_function(std::string s)
{
}
然后将其命名为:
x.s_function(s);
将返回可以使用的bool
否则,第一个文件不知道字符串s是否存在于第二个文件中,这是因为s具有本地范围(这意味着它在main被调用时被创建并在主要结束时被删除,但是没有#? t存在于该时间段之外)。
将其传递给s_function将为s_function创建一个副本以供使用。但是,s_function实际上不能修改main()中声明的字符串,因为它实际上有一个副本。 (为了更改main中的那个,它需要通过引用传递。)
希望有所帮助。