0

こんにちは、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;
}

関数.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);
};
4

2 に答える 2

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;

}
于 2013-03-18T07:06:54.437 に答える
0

として、あなたaddはグローバル宣言です。これはmain.cppで使用できます::

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

それ以外の場合、@Aniketが解決策を提供しました。

于 2013-03-18T07:11:22.467 に答える