由于某种原因,即使我定义了main()函数,我收到LNK1561错误。
我的search.h文件:
#pragma once
#include <iostream>
#include <fstream>
using namespace std;
namespace standard{
class Search
{
public:
bool sequential_find(int num);
bool recursive_binary_find(int num);
bool iterative_binary_find(int num);
void init_array();
void init_sorted_array();
void set_seed(int seed);
int getSize();
bool binSearch(int d, int low, int high);
// this is just for practice and debugging.
friend ostream& operator<< (ostream& out, const Search& s)
{
// put the code in here.
}
Search(int size,int seed=0);
~Search();
private:
int size;
int* array;
static int* data;
};
}
我的search.cpp文件:
#include "Search.h"
using namespace std;
namespace standard{
int main()
{
return 0;
}
// Search::Search(int size,int seed=0)
// {
//
// }
bool Search::sequential_find(int num)
{
for (int i=0; i<getSize(); i++)
{
if(data[i] == num)
{
return true;
}
}
return false;
}
bool Search::recursive_binary_find(int num)
{
int high = getSize()-1;
int low = 0;
return binSearch(num, low, high);
}
bool Search::binSearch(int d, int low, int high)
{
if (low > high)
return false;
int mid = (high+low)/2;
if (d == data[mid])
return true;
if (d < data[mid])
return binSearch(d, low, mid-1);
else
return binSearch(d, mid+1, high);
}
bool Search::iterative_binary_find(int num)
{
int high = getSize()-1;
int low = 0;
while (low <= high)
{
int mid = (high+low)/2;
if (num == data[mid])
return true;
else if (num < data[mid])
high = mid-1;
else if (num > data[mid])
low = mid+1;
}
return false;
}
void Search::init_array()
{
}
void Search::init_sorted_array()
{
}
void Search::set_seed(int seed)
{
}
int Search::getSize()
{
return size;
}
}
显然我的主要功能没有做任何实质性的事情,我正在努力让它完全编译。
答案 0 :(得分:2)
您已将main()
函数放在standard
命名空间中。这不是你的计划的切入点。程序的入口点应该在全局命名空间中。
根据C ++ 11标准的第3.6.1 / 1段:
程序应包含名为
main
的全局函数,该函数是程序的指定开始。它 是实现定义是否需要独立环境中的程序来定义主体 功能
要解决此问题,只需将main()
移动到全局命名空间即可。另请注意,return 0
不是必需的。流出main()
的末尾相当于返回0。
答案 1 :(得分:1)
你将main
放在你自己的命名空间standard
中,这使得它成为属于你的命名空间的函数,而不是main
应该再存在的全局函数。
对于C ++标准3.6.1:
程序必须包含一个名为main 的全局函数,它是程序的指定开始。实现定义是否需要独立环境中的程序来定义主函数。 [...]