访问c+类的其他函数上声明的变量+; 我有以下简单的初学者C++代码来完成一些功能。任何人都能帮助我如何访问函数中声明的变量。 myclass.h

访问c+类的其他函数上声明的变量+; 我有以下简单的初学者C++代码来完成一些功能。任何人都能帮助我如何访问函数中声明的变量。 myclass.h,c++,linux,C++,Linux,如果没有,请帮助我…否。无法从该方法外部访问方法作用域变量。如果您需要访问它们,它也不是好的设计。如果变量类似于类的状态,那么它们应该是类成员并直接访问/accesor方法。如果它们只是用于方法中的计算,那么它们应该是方法局部的。最后,如果这些都不适用,则将它们设置为全局的(尽管从OO的角度来看这是不好的,并且可能会导致难以发现的bug)。虽然如果您需要在几个方法调用之间保持它们,请将它们设置为static 只能使用全局变量,最好在.h文件中定义。 因此,如果要在函数1和2中使用变量a(int类

如果没有,请帮助我…

否。无法从该方法外部访问方法作用域变量。如果您需要访问它们,它也不是好的设计。如果变量类似于类的状态,那么它们应该是类成员并直接访问/accesor方法。如果它们只是用于方法中的计算,那么它们应该是方法局部的。最后,如果这些都不适用,则将它们设置为全局的(尽管从OO的角度来看这是不好的,并且可能会导致难以发现的bug)。虽然如果您需要在几个方法调用之间保持它们,请将它们设置为
static

只能使用全局变量,最好在.h文件中定义。 因此,如果要在函数1和2中使用变量a(int类型),请执行以下操作:

int a; // add this to your myclass.h (outside class)

然后,您可以在包含“myclass.h”的所有函数/子程序中使用“a”

c++允许您访问在一个函数中初始化的变量,以便在其他函数中使用相应类的数据成员访问这些变量。 像这样重新定义你的类

#include <iostream>
using namespace std;
class myclass
{
public:
   String str1, str2;
public:
  function_1(string str1);
  function_2(string str2);
  function_3(string str_var1,string str_var2);
};
#包括
使用名称空间std;
类myclass
{
公众:
字符串str1,str2;
公众:
函数_1(字符串str1);
函数2(字符串str2);
函数3(字符串str_var1,字符串str_var2);
};

您的代码是如何编译的?您可以从外部访问方法堆栈上定义的局部变量。。。你能发布你的完整资料吗?只是出于好奇,这是你正在学习的书中的一个练习吗?如果是,请跳过它。几个C++的教科书显示“嘿,你可以把东西从程序内存中的未分配空间中拉出”,但坦率地说不应该。这是一个理解如何管理系统内存的练习,永远不应该实际使用(因为变量不再维护)。这个问题似乎离题了,因为OP对一些基本语言功能有一些严重的误解。在
.h
extern
中声明。在
.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!");
}
in_myclass.function_3(in_myclass.function_1.str_in_fun_1,in_myclass.function_2.str_in_fun_2) {
    return 0;
}
int a; // add this to your myclass.h (outside class)
#include <iostream>
using namespace std;
class myclass
{
public:
   String str1, str2;
public:
  function_1(string str1);
  function_2(string str2);
  function_3(string str_var1,string str_var2);
};