再发Queue class泛型类问题

quanz_lhi 2008-04-09 04:45:52
我的代码如下:

#using <System.dll>
#include "CKdTree.h"
using namespace std;
using namespace System;
using namespace System::Collections;

...

Queue <CKdTreeNode> cToProcess;
cToProcess.Enqueue(m_RootNode);

编译时的错误:
1>.\CKdTree.cpp(48) : error C3225: “T”的泛型类型参数不能是“CKdTreeNode”,它必须是值类型或引用类型的句柄
1>.\CKdTree.cpp(48) : error C3225: “T”的泛型类型参数不能是“CKdTreeNode”,它必须是值类型或引用类型的句柄

对CKdTreeNode类的定义如下:

class CKdTreeNode
{
public:
CKdTreeNode();
CKdTreeNode(int* nIndex_);
CKdTreeNode(int* nIndex_, int nIndexSize_);
~CKdTreeNode();

bool GetTerminal() {return m_Terminal;};
int* GetIndex() {return m_Index;};
int GetSpcIndex(int nIndexNum_) {return m_Index[nIndexNum_];};
void SetIndex(int* nIndex_) {m_Index = nIndex_;};
int GetIndexSize() {return m_IndexSize;};
void SetIndexSize(int nIndexSize_) {m_IndexSize = nIndexSize_;};
int GetDim() {return m_Dim;};
void SetDim(int nDim_) {m_Dim = nDim_;};
double GetValue() {return m_Value;};
void SetValue(double dVal_) {m_Value = dVal_;};
CKdTreeNode* GetLeftBranch() {return m_LeftBranch;};
CKdTreeNode* GetRightBranch() {return m_RightBranch;};

void MakeNonTerminal(int nDim_, double dVal_, CKdTreeNode* cLeftBranch_, CKdTreeNode* cRightBranch);

protected:

private:
bool m_Terminal;
int* m_Index;
int m_IndexSize;
int m_Dim;
double m_Value;
CKdTreeNode* m_LeftBranch;
CKdTreeNode* m_RightBranch;
};


请问我应该如何修改代码,谢谢了!!
...全文
59 点赞 收藏 1
写回复
1 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
unicode 2008-04-18
TJ c++没用过,改成指针可以吗
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2008-04-09 04:45
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……