如何在没有参数的情况下访问函数?

时间:2015-12-10 03:13:28

标签: c++

看到我有一个带有“添加”功能的文件,如下所示

 #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()显然是如此奇怪而且无法奏效。那么如何在第二个文件中实际调用没有参数的函数呢?

1 个答案:

答案 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中的那个,它需要通过引用传递。)

希望有所帮助。