如何在另一个函数中访问一个函数中定义和声明的数组?

时间:2015-09-09 08:44:14

标签: c++ arrays function

任何人都可以告诉我如何访问在另一个函数中的函数中声明和定义的数组。 我定义了类。

class main_menu
{ 
    public:             
        void random_number();
        void search_array();
}; 

然后我定义了两个函数:

void main_menu :: random_number()
{
    // Size is global variable so I can access to this variable anywhere.
    long random_digit[Size]; 
}

void main_menu :: search_array()
{
   I want to access random_digit[Size]   here.
}  

我希望有人帮助我。谢谢。

4 个答案:

答案 0 :(得分:0)

onSaveInstanceState(Bundle)

答案 1 :(得分:0)

根据您提供的代码,我建议您使用vector,因为它可以填充任意数量的元素。 vector是一个泛型类,它将任意用户定义的类型作为元素处理(读取here以了解泛型)。变量必须声明为成员变量。如果在方法中声明它,则只能在那里访问该变量,而不能在其他方法中访问该变量。以下是如何在您的上下文中使用向量的示例:

#include <vector>

class main_menu {
  private:
    std::vector<long> random_digits; 
  public:
    void random_number();
    void search_array();
}; 

在实现中,您可以像这样填充矢量:

using namespace std;

void main_menu :: random_number() {
  int Size = // init it with 10 or 20;

  for(int index = 0; index < Size; index++) { 
    long random = (rand()% Size) + 1; 

    // this line fills the vector
    random_digits.push_back(random);
    cout << random << ' ';  
  } 
  cout << endl;
}

在另一种方法中,您可以像使用数组一样访问元素:

void main_menu :: search_array() {
    cout << "First element: " << random_digits[0] << endl;
}

另请参阅vector的文档。

答案 2 :(得分:0)

random_digit [size] 范围和生命周期限于方法 main_menu :: random_number()这意味着当该函数返回 random_digit [] 数组不再存在因此不能再使用了。

一个常见的解决方案是将 random_digit [] 作为成员变量,如用户eraxillan所建议的那样。

答案 3 :(得分:0)

random_digit成员main_menu

class main_menu
{

    long random_digit[Size];

    public:

    void random_number();

    void search_array();
};