如何修复“未定义的引用”

时间:2019-07-29 15:01:08

标签: c++

我正在尝试基于《有效C ++》这本书来创建一个表示有理数的类,但是当我尝试使用重载运算符实现乘法时,会收到消息“警告未定义的引用...”。 / p>

我已经尝试定义构造器,但是由于我使用默认值对其进行了声明,因此不允许我在.cpp文件中实现它(我不确定这是否是原因)。

    // Rational.h

    #ifndef RATIONAL
    #define RATIONAL

    class Rational 
    {
        public:

            // Constructor is not explicit; allows implicit int-to-Rational conversions

            Rational(int numerator = 0, int denominator = 1);


    // Accessors for numerator and denominator. Functions return integer.

    int numerator() const; 
    int denominator() const;

private:

    // Numerator and denominator

    int n, d; 
    };

    #endif

    //Rational.cpp
#include "Rational.h"
#include <iostream>

const Rational operator*(const Rational& lhs, const Rational& rhs) 
{
    return Rational(lhs.numerator()*rhs.numerator(), lhs.denominator()*rhs.denominator());
}

int main(int argc, char* argp[])
{

}

Rational.cpp :(。text + 0x21):警告:未定义对»Rational :: denominator()const«的引用 Rational.cpp :(。text + 0x2b):警告:未定义对»Rational :: denominator()const«的引用 Rational.cpp :(。text + 0x36):警告:对»Rational :: numerator()const«的未定义引用 Rational.cpp :(。text + 0x40):警告:未定义对»Rational :: numerator()const«的引用 Rational.cpp :(。text + 0x4f):警告:未定义对»Rational :: Rational(int,int)«的引用 collect2:错误:ld返回1退出状态

0 个答案:

没有答案