简单程序引用错误
Simple program Reference error
你好,我刚刚开始理解在C++中使用类。似乎无法使这个简单的程序工作。
我得到错误:
main.obj : error LNK2019: unresolved external symbol "public: int __thiscall functions::add(int,int)" (?add@functions@@QAEHHH@Z) referenced in function _wmain
1>c:usersbrrdocumentsvisual studio 2012ProjectsConsoleApplication4DebugConsoleApplication4.exe : fatal error LNK1120: 1 unresolved externals
我的代码如下:
main.cpp:
// ConsoleApplication4.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "functions.h"
#include <iostream>
int _tmain(int argc, _TCHAR* argv[])
{
bool running = true;
while(running)
{
functions func;
int var1, var2;
int option = 0;
switch (option)
{
case(1):
std::cin >> var1 >> var2;
func.add(var1,var2);
}
}
return 0;
}
函数.cpp:
#include "functions.h"
#include <iostream>
functions::functions(void)
{
}
functions::~functions(void)
{
}
int add(int var1,int var2){
int r;
r = var1 + var2;
return r;
}
函数.h:
#pragma once
class functions
{
public:
functions(void);
~functions(void);
int add(int var1,int var2);
};
int functions::add(int var1,int var2){
int r;
r = var1 + var2;
return r;
}
functions.cpp
中的实现应该如上图所示。在您当前的实现中,add
是一个全局函数。
所以你的functions.cpp
必须看起来像:
#include "functions.h"
#include <iostream>
functions::functions(void)
{
}
functions::~functions(void)
{
}
int functions::add(int var1,int var2){
int r;
r = var1 + var2;
return r;
}
As,您的add
是一个全局声明。你可以在你的主.cpp::中使用它
int Result ;
switch (option)
{
case(1):
std::cin >> var1 >> var2;
Result = add(var1,var2);
}
Else@Aniket为您提供了解决方案。
相关文章:
- 如何修复此错误:未定义对"距离(浮点数,浮点数,浮点数,浮点数,浮点数)"的引用
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 对C宏的未定义引用,但在定义它时会出现重新定义错误
- C++引用错误
- 已定义函数时出现 G++ "未定义的引用"错误
- 错误:使用通用引用的声明冲突
- 链接 cmake 时出现未定义的引用错误
- 错误:未定义对'oboe::AudioStreamBuilder::openStream(oboe::AudioStream**)'的引用
- 链接器错误:未定义对"Reference_Genome::seq[abi:cxx11]"的引用
- C++ 中的编译错误:未定义对"主"的引用 collect2:错误:ld 返回 1 个退出状态
- 错误:无法解析对重载函数的引用;你的意思是调用它吗?
- 在 gtest 中初始化堆栈上的引用变量的隔离错误
- 运行时错误:引用绑定到类型为"int"的空指针
- 隐式重新解释引用时强制转换,没有警告/错误
- 只有级联分类器会发出未定义的引用错误
- 错误:未定义对cv::cudacodec::createVideoReader的引用
- 模板流运算符重载错误:引用初始化无效,与basic_istream和basic_ifstream之间的差异有关
- 对于我的 ComplexNumber 中的某些方法,我得到了一个奇怪的未定义错误引用.cpp,不过我对模板很陌生
- 从对象调用成员对象,错误:引用非常量值的初始值必须是左值
- Qt并发错误:引用非静态成员