C++ &引用;“多重定义”;及;首先在此处定义”的含义;指向同一行的错误,c++;

C++ &引用;“多重定义”;及;首先在此处定义”的含义;指向同一行的错误,c++;,c++,C++,在头文件(“searchview.h”)中声明函数searchview::run()之后,我试图在源文件(“searchview.cpp”)中定义该函数。当我这样做时,我得到一个错误代码,指出searchview::run()有多个定义,它首先是在第5行定义的。两个错误代码都指向第5行,并且仅在源文件中定义,并且仅在头文件中声明 searchview.h using namespace std; class Searchview { public: void run(); }; 和s

在头文件(“searchview.h”)中声明函数searchview::run()之后,我试图在源文件(“searchview.cpp”)中定义该函数。当我这样做时,我得到一个错误代码,指出searchview::run()有多个定义,它首先是在第5行定义的。两个错误代码都指向第5行,并且仅在源文件中定义,并且仅在头文件中声明

searchview.h

using namespace std;

class Searchview {
public:
    void run();
};
和searchview.cpp

#include "searchview.h"

using namespace std;

void Searchview::run() {
    while(!search_results.empty()) {
        cout << "No results found" << endl;
    }
}
#包括“searchview.h”
使用名称空间std;
void Searchview::run(){
而(!search_results.empty()){

cout一个问题是缺少您的
searchview.h
。例如:

#ifndef SEARCHVIEW_H
#define SEARCHVIEW_H

// header body here

#endif
或:


你有没有把“xxx.cpp”放进去
某个地方?并且在头文件中尤其糟糕。您正在将所有内容从标准名称空间拉入全局名称空间,以供包含您的文件的所有人使用,无论他们喜欢与否!并且您的头文件甚至不使用任何来自std的内容!仅发布的代码无法复制错误。请参阅。然后是问题和广告d触发错误的实际代码。我遇到了相同的问题。如果我注释掉项目中除这两个文件之外的所有代码,它仍然会得到相同的错误,但是如果我将相同的代码复制并粘贴到一个新项目中,它会毫无问题地运行。我是否应该放弃这个文件并创建一个新的.h文件?@BenM,听起来像是liKE是一个构建文件的问题——MaFrimeFor、项目文件等。这不是一个C++语言问题,如果没有更多关于具体环境的详细信息,就无法回答。但是我确实包含了两个包含保护,当粘贴到堆栈溢出时没有包含它们。另外,我还没有调用“SeaVIEW.CPP”。其他任何地方。
#pragma once

// header body here