2015-11-20 2 views
-1

Итак, у меня есть 2 класса, класс BSTNode и класс BST, BSTNode - друг BST.Как вызвать функцию указателя класса

В моем классе BST, у меня есть эти общественные функции


void BST::Insert(int val); 
{ 
..do stuff 
} 

void BST::PostorderDFT(BSTNode* node) 
{ 
...do stuff 
} 

Я знаю, что я должен создать объект. Допустим:


int main(void) 
{ 
BST bst1; 

//then use the object I just created to create a tree. Lets say: 
{ 
bst1.Insert(1); 
bst1.Insert(2); 
bst1.Insert(4); 
bst1.Insert(10); 
ect.. 

Так что мой вопрос, как я могу назвать PostorderDFT (BSTNode узел *) функции в основной функции. Или какой аргумент я должен пройти, чтобы заставить его работать, потому что параметр (узел BSTNode *) является указателем класса, поэтому его довольно сложно понять.

спасибо.

ответ

0

Вы можете определить переменные BSTNode так:

BSTNode node; 

Вы можете использовать конструктор следующим образом:

BSTNode node(0,NULL,NULL); 

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

// some assignment 
// ... 
bst1.PostorderDFT(&node); 
+0

Спасибо. Это помогло. Кроме того, скажем, если у меня есть это дерево (1) -root (2) (4) (10) Как назначить мой узел равным узлу (4) после создания объекта BSTNode. Или, если я хочу рассчитать высоту дерева в элементе (4) ect. Еще раз большое спасибо за то, что вы помогли мне. – Leo

+0

Этот вопрос основан на реализации вашего BST. – Albert

Смежные вопросы