2013-03-18 85 views
0

你好,我刚刚开始理解在C++中使用类。似乎无法得到这个简单的程序工作。简单程序参考错误

我得到错误

main.obj : error LNK2019: unresolved external symbol "public: int __thiscall functions::add(int,int)" ([email protected]@@[email protected]) 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); 
}; 

回答

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; 

} 
+0

感谢这工作。 – user1068329 2013-03-18 08:15:12

+0

@ user1068329如果您认为它很有用,请接受答案:-) – 2013-03-18 10:44:09

0

至于,你add是一个全球性的声明。你可以在你的main.cpp中使用它::

int Result ; 
switch (option) 
    { 
    case(1): 
     std::cin >> var1 >> var2; 
     Result = add(var1,var2); 
    } 

其他@Aniket为你提供了解决方案。

+0

谢谢,我会补充一点。 – user1068329 2013-03-18 08:15:59