Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.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++ Visual Studio 2013中得到了一个未被理解的“未解决的外部错误”。非常感谢您的帮助。我已经将代码进一步减少到了以下形式(但是问题仍然存在):_C++_Class_Linker_Unresolved External - Fatal编程技术网

C++;具有简单类定义的未解析外部 我从C++ Visual Studio 2013中得到了一个未被理解的“未解决的外部错误”。非常感谢您的帮助。我已经将代码进一步减少到了以下形式(但是问题仍然存在):

C++;具有简单类定义的未解析外部 我从C++ Visual Studio 2013中得到了一个未被理解的“未解决的外部错误”。非常感谢您的帮助。我已经将代码进一步减少到了以下形式(但是问题仍然存在):,c++,class,linker,unresolved-external,C++,Class,Linker,Unresolved External,main.cpp: #include "Fibonacci.h" using namespace std; int main(void){ int RandInteger = 3; Fibonacci Fib(RandInteger); } 斐波那契 class Fibonacci{ public: Fibonacci(int n=0); protected: int m_n0, m_n1, m_n; }; Fibo

main.cpp:

 #include "Fibonacci.h"

using namespace std;

int main(void){

    int RandInteger = 3;
    Fibonacci Fib(RandInteger);

}
斐波那契

class Fibonacci{
    public:
        Fibonacci(int n=0);

    protected:
        int m_n0, m_n1, m_n;
};
Fibonacci.cpp:

#include "Fibonacci.h"

Fibonacci::Fibonacci(int n){
    m_n0 = 0;
    m_n1 = 1;
    m_n = n;
}
此代码在Visual Studio 2013中产生以下错误:

错误2错误LNK1120:1未解析的外部C:\Dropbox\todo\C++\Exam\Ex2\不工作\exerce 2\fibo1\fibo1\Debug\fibo1.exe fibo1 错误1错误LNK2019:未解析的外部符号“public:u thiscall Fibonacci::Fibonacci(int)”(??0Fibonacci@@QAE@H@Z) 函数\u main C:\Dropbox\todo\C++\Exam\Ex2\引用不起作用\exerce 2\fibo1\fibo1\main.obj fibo1

我坚持,但只要我将main.cpp中的行替换为

        Fibonacci Fib();
i、 我没有将整数传递给构造函数,一切都正常(它编译了一个函数,但没有按预期的那样做)


谢谢你的帮助!我真的还是卡住了。

你的
main
函数应该返回
int

void main(void){
应该是

int main(){
编辑:感谢otisonoza在评论中指出,某些编译器接受此main定义。除此之外,我看不出系统中出现编译器错误的任何原因。是否确实按照编写代码的方式粘贴了代码

另外,在定义
main
之后,随机勾号是怎么回事

}`
此外,在.cpp文件中的每个函数后面不需要分号:

Fibonacci::Fibonacci(int na){
   m_n0 = 0;
   m_n1 = 1;
   m_n = 2;
};

int Fibonacci::getNext(int FnM1, int FnM2){
   return FnM1 + FnM2;
};
可能是

Fibonacci::Fibonacci(int na){
   m_n0 = 0;
   m_n1 = 1;
   m_n = 2;
}

int Fibonacci::getNext(int FnM1, int FnM2){
   return FnM1 + FnM2;
}

我终于发现了我的错误。事实证明,代码本身并没有什么问题,但我以某种方式破坏了我的VisualStudio项目。我确实不是这些方面的专家,但以下是对我有效的方法:

  • 在Visual Studio中创建新的空项目
  • 将您的cpp文件(所有文件都是*.h文件)复制到新的项目文件夹中
  • 通过右键单击项目并使用“添加新项”,将它们添加到此新项目
  • 我知道这是一个简单的方法,但我看不出我是如何打破旧项目的(毕竟它应该足够简单)


    感谢你们所有人,尤其感谢奥蒂索诺扎和安圭,他们让我走上了正确的道路,代码(在他们这一方有效)没有问题,但是Visual Studio项目有问题。

    两个文件都是
    cpp
    文件的一部分(相同)Project?我成功编译了代码,在CODBROCK中,但必须将Voint main转换成int main。它是VS特定的Voint main。出于好奇,我尝试了VS 2013,它成功地编译了我。一些编译器接受它,Visual C++编译器。“谢谢,我不知道。”米迦勒:这是一个随机的想法:你是AR。不要在构造函数中使用
    int
    参数。尝试将其用于某个对象或将其完全删除。未使用的参数通常只会导致警告,但可能您打开了一些选项来调用它们错误或执行其他操作?我不知道,我刚刚到达这里。