我有以下简单的初学者 C++ 代码来使用函数做一些事情。请任何人帮助我如何访问另一个类的函数中声明的变量。
myclass.h
#include <iostream>
using namespace std;
class myclass
{
public:
void function_1(string str1);
void function_2(string str2);
void function_3(string str_var1,string str_var2);
};
myclass.cpp
#include <iostream>
#include"myclass.h"
using namespace std;
void myclass::function_1(string message1)
{
string str_in_fun_1=message1;
}
// -------------------
void myclass::function_2(string message2)
{
string str_in_fun_2=message2;
}
// ------------------
void ::function_3(string str1,string str2)
{
cout<<"we get:"<<str1<<"and"<<str2;
}
//main.cpp
#include"myclass.h"
#include <iostream>
using namespace std;
int main()
{
myclass in_myclass;
in_myclass.function_1("this is my first function!");
in_myclass.function_2("this is my second function!");
}
问题是,我可以在 function_3() 中以这种(如下)方式访问/使用 function_1() 和 function_2() 中声明的变量吗?
in_myclass.function_3(in_myclass.function_1.str_in_fun_1,in_myclass.function_2.str_in_fun_2) {
return 0;
}
如果没有,请帮助我...
否。无法从该方法外部访问方法范围变量。如果您需要访问它们,这也不是好的设计。如果变量类似于类的状态,那么它们应该是类成员并直接访问/访问方法。如果它们仅需要在方法中进行计算,则它们应该是方法局部的。最后,如果这些都不适用,请将它们设置为全局(尽管从OO的角度来看这很糟糕,并且可能会导致很难发现错误)。不过,如果您需要在多个方法调用中保持它们,请将它们设置为静态
。
我是一名优秀的程序员,十分优秀!