2013-03-18 42 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