Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/161.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;LNK1561错误(包含main()时)_C++_Lnk - Fatal编程技术网

C++ C++;LNK1561错误(包含main()时)

C++ C++;LNK1561错误(包含main()时),c++,lnk,C++,Lnk,出于某种原因,尽管定义了main()函数,但仍收到LNK1561错误 我的搜索.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)

出于某种原因,尽管定义了main()函数,但仍收到LNK1561错误

我的搜索.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;
};
}
#pragma一次
#包括
#包括
使用名称空间std;
名称空间标准{
类搜索
{
公众:
布尔序列查找(整数);
布尔递归二进制查找(int num);
布尔迭代二进制查找(int-num);
void init_数组();
void init_排序_数组();
空集_种子(int种子);
int getSize();
布尔二进制搜索(整数d、整数低位、整数高位);
//这只是为了练习和调试。

friend ostream&operator您已将
main()
函数放在
standard
命名空间中。这不是程序的入口点。程序的入口点应该在全局命名空间中

根据C++11标准第3.6.1/1段:

程序应包含一个名为
main
全局函数,该函数是程序的指定起点 实现是否定义了独立环境中的程序是否需要定义主程序 功能


要解决此问题,只需将
main()
移动到全局命名空间。还要注意,
return 0
不是必需的。从
main()
的末尾流出相当于返回0。

您已将
main()放入
标准
命名空间中的函数。这不是程序的入口点。程序的入口点应该在全局命名空间中

根据C++11标准第3.6.1/1段:

程序应包含一个名为
main
全局函数,该函数是程序的指定起点 实现是否定义了独立环境中的程序是否需要定义主程序 功能


要解决此问题,只需将
main()
移动到全局命名空间。还要注意,
return 0
不是必需的。从
main()的末尾流出
相当于返回0。

您将
main
放在自己的命名空间
standard
中,这使它成为属于您的命名空间的函数,而不是
main
应该是的全局函数

< C++标准3.61:

程序应包含一个名为main的全局函数,该函数是程序的指定起点。独立环境中的程序是否需要定义主函数由实现定义。[…]


您将
main
放入自己的命名空间
standard
,这使它成为属于您的命名空间的函数,而不是
main
应该是的全局函数

< C++标准3.61:

程序应包含一个名为main的全局函数,该函数是程序的指定起点。独立环境中的程序是否需要定义主函数由实现定义。[…]


谢谢!这解决了这个问题,也为我提供了很多其他的机会。@Redbearedowl:好的,很高兴它能帮上忙谢谢!这解决了这个问题,也为我提供了很多其他的机会。@Redbearedowl:好的,很高兴它能帮上忙
#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;
        }
    }