我如何在多个文件中使用函数,c ++

How i can use functions in multiple files, c++

本文关键字:函数 文件      更新时间:2023-10-16

我在使用多个文件时遇到了一点问题。我有一个任务使用三个文件:function.h,function.cpp,prog.cpp

function.h 中,我定义了每个函数。

函数中.cpp我输入了每个函数的代码。

prog 中.cpp我必须调用函数。在那里我没有定义任何东西。

我有这些错误:

"void __cdecl randInt(int *,int)" (?randInt@@YAXPAHH@Z) already defined in function.obj
"void __cdecl showInt(int *,int)" (?showInt@@YAXPAHH@Z) already defined in function.obj
One or more multiply defined symbols found

功能.cpp:

#include <iostream>
using namespace std;
void randInt(int *arr, int size) {
    for (int *i = arr; i < arr + size; i++) {
        *i = rand() % 10;
    }
}
void showInt(int *arr, int size) {
    cout << "Int Massive" << endl;
    for (int *i = arr; i < arr + size; i++) {
        cout << *i << ", ";
    }
    cout << endl;
}

函数.h:

#pragma once
void randInt(int *, int);
void showInt(int *, int);

进度.cpp:

#include <iostream>
#include <ctime>;
using namespace std;
#include "function.h"
#include "function.cpp"

int main()
{
    srand(time(0));
    int n = 10;
    int *arrInt = new int[10];
    randInt(&arrInt[0], n);
    showInt(&arrInt[0], n);
    return 0;
}
包含

.cpp文件是不正确的和不必要的,所以删除#include "function.cpp"你应该没问题。

您应该以这种方式编辑文件

函数.h

    #pragma once
    void randInt(int *, int);
    void showInt(int *, int);

功能.cpp

    #include <iostream>
    #include "function.h"
    using namespace std;
    void randInt(int *arr, int size) {
        for (int *i = arr; i < arr + size; i++) {
            *i = rand() % 10;
        }
    }
    void showInt(int *arr, int size) {
        cout << "Int Massive" << endl;
        for (int *i = arr; i < arr + size; i++) {
            cout << *i << ", ";
        }
        cout << endl;
    }

PRG.cpp

    #include <iostream>
    #include <ctime>;
    #include "function.h"
    using namespace std;
    int main()
    {
        srand(time(0));
        int n = 10;
        int *arrInt = new int[10];
        randInt(&arrInt[0], n);
        showInt(&arrInt[0], n);
        return 0;
     }

然后,您可以通过将 prg.cpp 与函数.cpp文件链接来编译程序。如果您使用的是 g++ 编译器,则可以按照下面给出的方式执行此操作。

    g++ prg.cpp fuction.cpp