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

+0

@ user1068329 любезно согласиться с ответом, если вы считаете это полезным :-) –

0

As, ваш add глобальная декларация. Вы можете использовать это в своем main.cpp ::

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

Else @Aniket предоставило вам решение.

+0

Спасибо, я добавлю. – user1068329

Смежные вопросы