不承认cout<<在我的程序?

时间:2013-04-24 03:20:58

标签: c++ binary-search-tree

我正在创建一个包含多个文件的程序,但它无法识别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

2 个答案:

答案 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