前一位朋友教我
A a;
a.aa();
问题解决了。新的问题是:
我做的是一个B+树,想按一下insert按钮,就往树里插入一个节点。
A a;
a.aa();正是写在插入按钮的代码中,A指的是B+树的类,aa指的是插入节点操作。
如果这样写的话,每按一下,都会生成一个B+树的对象。 我想解决方法可能是设一个flag,来看我的B+树是不是空的,如果是空的话,
就生成一个B+树的对象,以后就不生成新的对象了。
以下是我的代码:
if ( flag == 0 )
{
CBplusTree myTree;
myTree.insertNode( );
}
else
{
myTree.insertNode( );
} 问题是,
首先,我的flag应定义在什么地方,
是不是也要定成static的,才不会丢失。
其次,如果是else的情况,myTree也是没定义过,会出错,
如何把myTree保留下来。
谢谢
A a;
a.aa();
问题解决了。新的问题是:
我做的是一个B+树,想按一下insert按钮,就往树里插入一个节点。
A a;
a.aa();正是写在插入按钮的代码中,A指的是B+树的类,aa指的是插入节点操作。
如果这样写的话,每按一下,都会生成一个B+树的对象。 我想解决方法可能是设一个flag,来看我的B+树是不是空的,如果是空的话,
就生成一个B+树的对象,以后就不生成新的对象了。
以下是我的代码:
if ( flag == 0 )
{
CBplusTree myTree;
myTree.insertNode( );
}
else
{
myTree.insertNode( );
} 问题是,
首先,我的flag应定义在什么地方,
是不是也要定成static的,才不会丢失。
其次,如果是else的情况,myTree也是没定义过,会出错,
如何把myTree保留下来。
谢谢
在第一次需要B+树对象的时候创建之然后在你点击按钮的响应事件中insert操作
flag可以定义在什么地方,很容易
你上边这些代码需要在什么类中调用?那就把flag定义为这个类的成员变量但是,坦言之,我认为你上边的代码效率不高,每次都要判断树是不是空
1.首先涉及到B+树类对象的地方创建对象
CBplusTree myTree;
2.在Insert按钮的响应事件中调用插入操作
myTree.insertNode( );3.不用判断flag
在第一个节点都没有的时候,不用定义B+树对象,另,如果是在别的地方创建了对象myTree,
那么每次点Insert时,是不是要把myTree做为参数传过来?
不然的话,myTree是未定义啊
还是有别的方法,直接可以使用myTree我对VC和MFC是新手,很多地方概念不清,请指教
在myBTreePlusDlg.cpp里的Insert事件中, 调中 myTree.insertNode(参数);CBplusTree里有成员函数insertNode(参数);
在实现void CBplusTree::insertNode(参数)时,
需要从树的根开始查找,则我在里面写了
{
myTree.root = ....;
}出错信息说myTree未声明。
我觉得和我原来的问题有点类似,
前面可以在myBtreePlusDlg里加一个成员变量解决
现在好象有点问题。
是不是只有把myTree也当成参数传过来?
或者说我的思路就是错的。
因为我另一个朋友告诉我说不可能在里面调用myTree
可是没讲明白。