简单程序引用错误

Simple program Reference error

本文关键字:错误 引用 程序 简单      更新时间:2023-10-16

你好,我刚刚开始理解在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:usersbrrdocumentsvisual studio 2012ProjectsConsoleApplication4DebugConsoleApplication4.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;
}

函数.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;
}

函数.h:

#pragma once
class functions
{
public:
    functions(void);
    ~functions(void);
    int add(int var1,int var2);
};
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;
}

As,您的add是一个全局声明。你可以在你的主.cpp::中使用它

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

Else@Aniket为您提供了解决方案。