我正在创建一个包含多个文件的程序,但它无法识别cout<<在我的tnode文件中。谁能找到问题所在?在其他错误中,我在我的节点文件中收到此错误“cout未在此范围内声明”。 我的主要职能:
#include <iostream>
#include "bst.h"
using namespace std;
int main(int argc, char *argv[]) {
cout<<"hi";
bst *list = new bst();
return 0;
}
我的BinarySearchTree文件:
#ifndef bst_H
#define bst_H
#include <iostream>
#include <string>
#include "tnode.h"
class bst
{
public:
bst()
{
root = NULL;
}
void add(int key, char value) {
if (root == NULL) {
root = new tnode(key, value);
return
} else
root->add(key, value);
return
}
tnode *root;
};
#endif
我的节点文件:
#ifndef tnode_H
#define tnode_H
#include <iostream>
#include <string>
class tnode
{
public:
tnode(int key, char value)
{
this->key = key;
this->value = value;
N = 1;
left = NULL;
right = NULL;
cout<<"hi";
}
void add(int key, char value) {
if (key == this->key)
{
cout<<"This key already exists";
return;
}
else if (key < this->key)
{
if (left == NULL)
{
left = new tnode(key, value);
cout<<"Your node has been placed!!";
return;
}
else
{
left->add(key, value);
cout<<"Your node has been placed!";
return;
}
}
else if (key > this->key)
{
if (right == NULL)
{
right = new tnode(key, value);
cout<<"Your node has been placed!!"; return;
}
else
return right->add(key, value);
}
return;
}
tnode* left;
tnode* right;
int key;
char value;
int N;
};
#endif
答案 0 :(得分:4)
你需要这样做:
using namespace std;
或
std::cout
在您的tnode
文件中
但是using namespace std
被认为是不好的做法,所以你最好使用第二种方式:
std::cout<<"Your node has been placed!!";
答案 1 :(得分:2)
您需要使用命名空间std
。可以通过using namespace std
(可以输入.cpp文件,但不会输入.h文件,详细了解原因here)或在调用时使用std::cout
。