对MetricConverter::KG_lbs(double)的未定义引用

undefined reference to MetricConverter::KG_lbs(double)

本文关键字:未定义 double 引用 lbs MetricConverter KG      更新时间:2023-10-16

我在构建程序时遇到问题,它一直通知我所有转换函数都有未定义的引用。

我正在寻求关于我在代码中可能忽略的问题的建议。此外,我正在寻找关于如何设置我的实现部分设置转换的建议。

main.cpp

    #include "MetricConverter.h"
#include <iostream>
#include <stdio.h>
#include <cstdlib>
using namespace std;
void convert_kg_lbs();
void convert_km_mi();
void convert_liters_quarts();
void convert_celsius_fahrenheit();
int main()
{
    char selection;
    do
    {
        // display menu
        system("cls");
        cout << "Welcome to the Metric Converter!"
            << "1) Kg to lbs " << endl
            << "2) KM to Mi " << endl
            << "3) liters to quarts " << endl
            << "4) celsius to fahrenheit: " << endl
            << "5) Exit" << endl;
        cout << "Enter Selection: " << endl;
        cin >> selection;
        // switch choice
        switch (selection)
        {
        case '1': convert_kg_lbs(); break;
        case '2': convert_km_mi(); break;
        case '3': convert_liters_quarts(); break;
        case '4': convert_celsius_fahrenheit(); break;
        case '5': break;
        default:
            cout << "Invalid Choice! " << endl;
            system("PAUSE");
        }

    } while (selection != '5');


    return 0;
}
void convert_kg_lbs()
{
    // get input (kg)
    double KG;
    system("cls");
    cout << "--[Convert KG to pounds]";
    cout << "Enter kilograms: ";
    cin >> KG;
    printf("n%.2f KG = %.2f lbsnn", KG, MetricConverter::KG_lbs(KG));
    system("PAUSE");
}
void convert_km_mi()
{
    // get input(km)
    double KM;
    system("cls");
    cout << "Convert KM to Miles";
    cout << "Enter KM: ";
    cin >> KM;
    printf("n%.2f KM = %.2f milesnn", KM, MetricConverter::KM_miles(KM));
    system("PAUSE");
}
void convert_liters_quarts()
{
    // get input (liters)
    double liters;
    system("cls");
    cout << "Convert Liters to Quarts";
    cout << "Enter Liters: ";
    cin >> liters;
    printf("n%.2f liters = %.2f quartsnn", liters, MetricConverter::Liters_quart(liters));
    system("PAUSE");
}
void convert_celsius_fahrenheit()
{
    // get input (celsius)
    double celsius;
    system("cls");
    cout << "Convert celsius to fahrenheit";
    cout << "Enter celsius: ";
    cin >> celsius;
        printf("n%.2f celsius = %.2f fahrenheitnn", celsius, MetricConverter::Celsius_fahrenheit(celsius));
        system("PAUSE");

    }

MetricConverter.h

#ifndef METRICCONVERTER_H
#define METRICCONVERTER_H
class MetricConverter
{
public:
    MetricConverter();
    static double KG_lbs(double KG);
    static double KM_miles(double);
    static double Liters_quart(double);
    static double Celsius_fahrenheit(double);
};

#endif // METRICCONVERTER_H
实现MetricConverter.cpp

#include "MetricConverter.h"
MetricConverter::MetricConverter()
{
}
double KG_lbs(double KG)
{

}
double KM_miles(double KM)
{
}
double Liters_quart(double Liters)
{

}
double Celsius_fahrenheit(double Celsius)
{

}

修改这些:

static double KG_lbs(double KG)
    {

    }

static double MetricConverter::KG_lbs(double KG)
{}