Как получить доступ к переменной, определенной в другом классе в c

#c #variables #accessibility

#c #переменные #Специальные возможности

Вопрос:

Я использую библиотеку xerces для анализа xml на C

сохраняя xml-элементы в массиве строк, я хочу получить доступ к этому массиву строк из моего класса

код класса обработчика —

 #include "MySAX2Handler.hpp"
#include <xercesc/sax2/Attributes.hpp>
#include <iostream>
#include <string>

using namespace std;
const int MAXITEMS = 100;
string resultArray[MAXITEMS];
int cnt = 0;

void MySAX2Handler::startElement(const XMLCh* const uri, const XMLCh* const localname,
const XMLCh* const qname, const Attributesamp; attrs)
{
  char* message = XMLString::transcode(localname);
  resultArray[cnt] = message;
  cnt  ;
  for (int idx = 0; idx < attrs.getLength(); idx  )
  {
    char* attrName = XMLString::transcode(attrs.getLocalName(idx));
    char* attrValue = XMLString::transcode(attrs.getValue(idx));
    resultArray[cnt] = attrName;
    cnt  ;
    resultArray[cnt] = attrValue;
    cnt  ;
  }
  XMLString::release(amp;message);
}
  

Я хочу получить доступ к resultArray из другого класса

Пожалуйста, помогите мне, я новичок в C

Комментарии:

1. У меня сложилось впечатление, что вы немного смущены, когда говорите «из другого класса». C — это не Java, он гораздо более свободен. Вероятно, лучше всего взять хорошую книгу — в FAQ перечислены несколько хороших.

2. На самом деле это не вопрос.

3. я думаю, вам следует (по крайней мере) добавить проверку в свой цикл, если (cnt < MAXITEMS) прерывается;

Ответ №1:

resultArray это глобальная переменная с внешней связью, поэтому вы уже можете получить к ней доступ из любого места вашей программы. Вам просто нужно объявить ее:

 // someotherfile.cpp
extern std::string resultArray[100];

void foo()
{
  std::cout << resultArray[12] << std::endl;
}