我做一个B+树
生成一个基于对话框的工程,生成两个类
CmyBTreePlusApp,CmyBTreePlusdlg
我又加了两个类CBPlusTree,CTNode
class CBplusTree
{
public:
int flag;
CTNode *root; CTNode *FirstLeaf;
CTNode *curNode; public:
CBplusTree(void);
~CBplusTree(void);

void insertNode( int key , CTNode *point, Triple loc ); void deleteNode( int key, Triple loc ); void insertkey(CTNode *p, int j , int key , CTNode *point);
Triple searchInNode(int key, CTNode *Node);
};一个插入按钮,插入事件放在myBplusTree.cpp中,
void CmyBtreePlusDlg::OnBnClickedInsert()
{
int key;
CTNode *point;
Triple loc;

// TODO: 在此添加控件通知处理程序代码
UpdateData(true);

    if ( myTree.flag == 0 )   //表示还是空树
{
CTNode node;
myTree.flag += 1;
myTree.root = &node;
myTree.curNode = &node;
myTree.FirstLeaf = &node;
}
         key = m_node;
point = NULL;
loc = searchInleaf( key );
myTree.insertNode( key, point, loc );
}我在CmyBTreePlusdlg类中加了一个变量 CBPlusTree myTree,
目地是在按插入时,不用把myTree作为参数传递。
调试的结果,发现第一次按钮后,值都正确的存入myTree中了
第二次按钮后,中有flag中还是正确的值,
另几个指针所指的地方的值都发生变化了
请高手指点