내가 주어진 코드를 사용하여 하나 개의 문자와 하나의 문자열는 C
struct M2E
{ char english;
string morse;}
를 포함하는 stuct을 만들어 과부하, 나는 bintree입니다 M2E의 이진 트리를 만들어 binarytree ++하지만 난 문자열이 M2Es을 정렬 할 모스 순서 ("*"보다 작 "-") 그래서 내가 메신저
을bool operator == (M2E& other) const
{
return morse.compare(other.morse);
}
는 그러나 나는 다음과 같은 오류 메시지를주는 유지 구조체 M2E에 과부하 OPERATOR 시스템 compling 않았을 때 5,는
no match for "operator ==" in ((binNode<M2E>*)this)->binNode<M2E>::nodeData == dataItem
note:candidates are :bool M2E::operator==(M2E&) const
bintree.h은 내가 이진 트리에 대한 사용하고있는 코드는 다음과 같습니다
는template <typename dataType> class bintree
{
private:
binNode<dataType> *root;
int numItems;
void insert(const dataType& newData)
{
// insert the newData into the tree
if (root == NULL)
{
root = new binNode<dataType>(newData);
}
else
{
root->insert(root, newData);
}
numItems++;
}
binnode.h은 바이너리 노드에 대한 사용하여 코드 메신저는 다음과 같습니다에 대한
이template <typename dataType> class binNode
{
private:
// private data ====================================
dataType nodeData;
binNode<dataType> *left, *right;
void insert(binNode<dataType>* &root, const dataType& dataItem)
{
if (nodeData == dataItem)
{
throw std::invalid_argument("dataItem already in tree");
}
if (dataItem < nodeData)
{
if (left == NULL)
{
left = new binNode(dataItem);
}
else
{
left->insert(left, dataItem);
}
}
else
{
if (right == NULL)
{
right = new binNode(dataItem);
}
else
{
right->insert(right, dataItem);
}
}
rebalance(root);
}
들으
난 당신이 비주얼 스튜디오를 사용하지 않는뿐만 아니라 –