简单程序参考错误

时间:2013-03-18 07:05:17

标签: c++

您好我刚刚开始理解在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);
};

2 个答案:

答案 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为您提供了解决方案。

相关问题