Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.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++程序时,我有一个“未定义的引用”错误。我知道这是一个常见的陷阱,但到目前为止,我还无法找出我做错了什么_C++_Compiler Errors - Fatal编程技术网

c++';未定义对'的引用;错误 在编译C++程序时,我有一个“未定义的引用”错误。我知道这是一个常见的陷阱,但到目前为止,我还无法找出我做错了什么

c++';未定义对'的引用;错误 在编译C++程序时,我有一个“未定义的引用”错误。我知道这是一个常见的陷阱,但到目前为止,我还无法找出我做错了什么,c++,compiler-errors,C++,Compiler Errors,这是相关代码。Ex1两个和h: #ifndef EX1TWO_SUM_H #define EX1TWO_SUM_H #include <vector> using namespace std; namespace ddc { class Ex1Two_Sum { public: void f(); protected: private: }; } #endif 产生以下信息: main.o: In function `main': main.cp

这是相关代码。Ex1两个和h:

#ifndef EX1TWO_SUM_H
#define EX1TWO_SUM_H

#include <vector>
using namespace std;

namespace ddc {
class Ex1Two_Sum
{
   public:
     void f();
   protected:
   private:
};
}

#endif 
产生以下信息:

main.o: In function `main':
main.cpp:(.text+0x2c): undefined reference to `ddc::Ex1Two_Sum::f()'
collect2: error: ld returned 1 exit status

当源文件只需要提供非内联函数定义时,它使用内联函数定义重新定义整个类

#include "Ex1Two_Sum.h"

void ddc::Ex1Two_Sum::f() {
    std::cout << "should work\n";
}
#包括“Ex1Two_Sum.h”
void ddc::ex1两个总和::f(){

std::cout当源文件只需要提供非内联函数定义时,它使用内联函数定义重新定义整个类

#include "Ex1Two_Sum.h"

void ddc::Ex1Two_Sum::f() {
    std::cout << "should work\n";
}
#包括“Ex1Two_Sum.h”
void ddc::ex1两个总和::f(){

std::cout首先,哪一行命令会抛出该错误

其次,我认为您忘记在
Ex1Two\u Sum.cpp
中包含
Ex1Two\u Sum.h

第三,您需要将
Ex1Two\u Sum.cpp
中的
类更改为:

void Ex1Two_Sum::f(){...}

首先,哪一行命令会抛出该错误

其次,我认为您忘记在
Ex1Two\u Sum.cpp
中包含
Ex1Two\u Sum.h

第三,您需要将
Ex1Two\u Sum.cpp
中的
类更改为:

void Ex1Two_Sum::f(){...}

是的。现在工作了——需要包括IoStudio来编译。相关的注释:你会说这是C++中定义/使用类的常用方法吗?我的意思是,在.h文件中有类规范,然后简单地实现函数的单独文件?@ nMPG:是的,这是通常的方法。有时是适当的(定义模板时通常需要)但是现在可以工作了,需要包括IoStudio来编译。相关的注释:你会说这是C++中定义/使用类的常用方法吗?我的意思是,在.h文件中有类规范,然后简单地实现函数的单独文件?@ nMPG:是的,这是通常的方法。e是在标题中定义所有内容,这有时是适当的(并且在定义模板时通常是必需的),但可能会导致过度依赖。
void Ex1Two_Sum::f(){...}