注释掉函数体在VS 2012中给出了奇怪的链接错误

时间:2014-09-23 10:32:16

标签: c++ visual-studio-2012 linker-errors

我正在尝试使用VS 2012在C ++中编写简单的二叉树程序。即使所有路径都设置它给我链接错误,如附件所示,当我在插入函数内注释注释时,它编译没有错误

// C++ code
#include "stdafx.h"
#include <iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
   cout <<" Simple Binary Tree Examples";

   getchar();

    return 0;
}

struct node
{
   int data;
   node *left;
   node *right;   
};

public class BinaryTree
{
   public :
      BinaryTree();
      ~BinaryTree();

      void insert(int value);
      /*{
         if(root==NULL)
         {
            insert(value,root);
         }
         else
         {
            root = new node;
            root->data=value;
         }
      }*/

      void delete_tree();

   private:
      node *root;
      void insert(int value,node *leaf);
};

BinaryTree::BinaryTree()
{
   root=NULL;
}

BinaryTree::~BinaryTree()
{
  delete_tree();
}

void BinaryTree::insert(int value)
{
   // If i un-comment the below code.. it gives link error.
  /* if(root==NULL)
   {
      insert(value,root);
   }
   else
   {
      root = new node;
      root->data=value;
   }*/
}

真的不知道什么是错的,因此共享了整个代码。

1 个答案:

答案 0 :(得分:3)

您的代码不包含delete_tree的定义,您的析构函数中提到了该定义。

它既不应该用注释的代码编译,也不应该编译。