您好我刚刚开始理解在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:\users\brr\documents\visual studio 2012\Projects\ConsoleApplication4\Debug\ConsoleApplication4.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;
}
functions.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;
}
functions.h:
#pragma once
class functions
{
public:
functions(void);
~functions(void);
int add(int var1,int var2);
};
答案 0 :(得分:2)
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;
}
答案 1 :(得分:0)
因为,您的add
是全球声明。您可以在main.cpp ::
int Result ;
switch (option)
{
case(1):
std::cin >> var1 >> var2;
Result = add(var1,var2);
}
Else @Aniket为您提供了解决方案。