Я новичок в C++ и переживает проблемы, что у меня есть ситуации, как это: У меня есть класс Хаффмана, как это:не может получить доступ к переменной вне определения конструктора
class HuffmanTree
{
public: int size,length;
Huffman(char * argv) ; // please see it's definition below, in it's defintion i read the frequency from a file (Input.txt) which taken as sole argument (which conatains some alphabets like "aaabbaacccab" to calculate frequency).
~HuffmanTree() {};
struct Node
{
int value, Front, Rear;
short flag;
unsigned char symbol;
int left, right;
};
Node * tree;
Node data[1000];
};
n = sym.size() - 1;
//here is the main function
int main(int argc, char *
* argv)
{
int freq[256] = { 0 };
HuffmanTree Object1(argv[1]);
cout<<"check"<<storesym.size()<<endl;
Object1.read(&Object1.tree, sym.size() - 1, Object1.data, Object1);
return (0);
}
Пожалуйста, не углубиться в кода, потому что мой вопрос очень прост и есть следующее: ** В моем конструкторе у меня есть переменные и массивы типа «data []», «storesym», которые я хочу использовать в основной функции, но их область действия ограничена только определением конструктора. ** Есть ли у них какой-либо способ сделать объем «данных []», который из типа узла и «сохраняется» в основной функции?
Thnaks за ответ, не могли бы вы мольбу разделите мне часть кода, объясняющую немного (я не запрашиваю полный код, но просто тело), чтобы понять, потому что я все еще не способен понять. Фактически я обязан прочитать файл «Input.txt» (принятый как единственный аргумент, который содержит символы для вычисления частоты) только внутри определения конструктора. – Sss
Фактически я должен прочитать символ и рассчитать частоту только внутри определения конструктора, но прочитанный символ и claculated частота должны обладать областью в main(). Я хочу, чтобы часть кода помогла сделать это (я сделаю это как refernce), Thnaks – Sss
на самом деле - data [] уже является публичным членом вашего класса, так что, похоже, у вас это уже есть. Вы можете читать/писать с помощью, например, Object1.data [0] в вашей основной функции –