Здравствуйте , в общем приходится перелезать с процедурного программирования на ООП , и в связи с этим
появилось пару вопросов . В классе пока только конструктор и метод создания дерева :
Код

Компилятор выдаёт ошибку в строчках node::key = 0 и node::right = node::left = NULL
Раньше ,пока не знал классов было достаточно просто написать node.key = 0 . Здесь же это уже не прокатывает , собственно как
и :: . В общем вопрос в том как банально проиницилизировать эти поля .
Заранее спасибо .

@темы: C++

Комментарии
01.05.2011 в 10:36

Я знаю, что я гений, но мне от этого ничуть не легче.
Я бы тоже на эти строки ругался :)
Виданое ли дело, обращаться с классом, как с объектом...
Поясняю: node - имя класса, а не указатель на объект.

По идее, должно быть как-то так:
TreeNode(int n)
{
i = 1 ;

q = root = new node ;
root::key = 0 ;
root::right = root::left = NULL ;
01.05.2011 в 13:22

Вот точно , что это я , спасибо.
01.05.2011 в 13:40

mikluho если можно ещё 1 вопрос насчёт рекурсии в этом классе . Проблема в том,что из функции main компилятор не даёт её запустить , поскольку туда нужно снчала передать параметры , которые находятся в private . Как это можно обойти ? Пробовал все поля поместить в public и всё отлично работает(алгоритм верный) .
01.05.2011 в 14:07

Хотя вот кажется решил , вот так можно :

void make_tree()
{
create_tree(q ,root ,i ) ;
}