的十六進制數我有這棵樹類:重載輸出操作符給出了相反的字符串
#include <fstream>
using namespace std;
#ifndef HUFF_TREE_H
#define HUFF_TREE_H
class HuffTree{
public:
HuffTree();
HuffTree(char data, float frequency);
~HuffTree();
HuffTree& operator = (const HuffTree& tree);
int getNumberNodes();
float getFrequency();
void merge(HuffTree *tree);
friend ostream& operator << (ostream &out, const HuffTree &tree);
private:
struct node{
char data;
float frequency;
node* left;
node* right;
};
node* head;
int number_nodes;
float avg_code_length;
void destroy(node* &head);
void copyTree(node* &t1, node* t2);
};
#endif
下面是重載輸出操作的代碼:
ostream& operator << (ostream &out, const HuffTree &tree){
out << "testing";
return out;
}
在我的主要功能,我打電話功能如下:
HuffTree* tree;
cout << tree;
從我已閱讀,這應該工作,但我得到十六進制數字p r到屏幕上。上面的例子打印出「0x1dcc2b0」。如果我將它傳遞給文件句柄,也會發生同樣的情況。我想我只需要一雙新的眼睛,任何人都可以看到我的問題?
請出示tree' – Brian