Wie wende ich die getrennte C++-Kompilierung an?
天蓬老师
天蓬老师 2017-06-20 10:06:13
0
1
894

Die Einführung von C++ Primer in die getrennte Kompilierung ist sehr einfach, daher wollte ich selbst ausprobieren, wie man sie verwendet. Führen Sie den folgenden Code aus. Wenn Sie fun() und absolute() in der Hauptfunktion ausführen, werden Sie gefragt, dass keine Funktion definiert ist. Ist das Warum? Was ist zu tun, damit der Code reibungslos läuft?

Hauptfunktion:

#include <iostream>
#include <string>
#include <vector>
#include "Chapter6.h"

using namespace std;

//cnt函数每次被调用则返回值+1
int cnt()
{
    static int rtn = 0;
    return rtn++;
}

int main()
{
    for (size_t i = 0; i < 10; ++i)
    {
        cout << cnt() << endl;
    }
    int a = 0;
    string c;
    do
    {
        cout << "Please enter a number:" << endl;
        cin >> a;
        cout << a << "! = " << fun(a) << '\n' << absolute(a) << endl; //undefined reference to 'absolute(double), 'fun(int)'
        cout << "More numbers? Please enter yes or no." << endl;
        cin >> c;
    }
    while (!c.empty() && c[0] == 'y');
    return 0;
}

Chapter6.h Header-Datei:

#include <iostream>
#include <string>
#include <vector>

using namespace std;

int fun(int a);
double absolute(double a);
int cnt();

fact.cpp:

#include <iostream>
#include <string>
#include <vector>
#include "Chapter6.h"

using namespace std;

//阶乘计算
int fun(int a)
{
    int rec = 1;
    while (a > 1)
    {
        rec *= a--;
    }
    return rec;
}

//返回绝对值
double absolute(double a)
{
    if (a >= 0)
        return a;
    else
        return -a;
}
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

Antworte allen(1)
typecho

编译时要带上所有 .cpp 文件名:

g++ main.cpp fact.cpp

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage