私はC++のクラスを取っています。これは私を凶悪化させています。最も面白いのは、ガイドが私に何をすべきか正確に教えてくれるとは思われないし、ここで問題を解決するような疑問もないということです。おそらく、複数のC++コンパイラの問題が原因です。私はVisual Studio 2010を使用しています。私は、演算子のオーバーロードでクラスを作成しようとしています。C++:ナットを動かす未確認の外部
//File Rational.h
#ifndef RATIONAL_H
#define RATIONAL_H
class Rational
{
private:
int numerator;
int denominator;
public:
Rational(int num = 0, int den = 1);
Rational operator+(const Rational &);
Rational operator=(const Rational &);
Rational operator+=(const Rational &);
int getNum();
int getDenom();
};
#endif
とクラス:
#include "stdafx.h"
#include <iostream>
using namespace std;
class Rational
{
private:
int numerator;
int denominator;
public:
Rational(int num = 0, int den = 1)
{
numerator = num;
denominator = den;
}
Rational operator+(const Rational &r)
{
return Rational(((numerator * r.denominator) + (r.numerator * denominator)), (denominator * r.denominator));
}
Rational operator=(const Rational &r)
{
denominator = r.denominator;
numerator = r.numerator;
}
Rational operator+=(const Rational &r)
{
return Rational(((numerator * r.denominator) + (r.numerator * denominator)), (denominator * r.denominator));
}
ゲッター関数が何を期待するとエラー出力はありませんが、コンストラクタと、オーバーロードしている私は、ヘッダー、クラス、メイン、などを持っていますメソッドは私に未解決の外部を与えます。私は方法とヘッダーで試したことがどれくらいのものか覚えていない。私はダースかそこらのガイドと例を見てきましたが、どれも働いていませんでした。私はこれをfriend関数として+オペランドで一度コンパイルするようにしましたが、代入のメンバ関数である必要があり、それをメンバ関数に移動すると何とか上記をすべて破ってしまいました。私はここでナッツに行くよ。私が何をしてもそれらの方法は解決しません!
mainメソッドはすべて標準的な方法で呼び出し、Rational.hファイルを含みます。すべてのファイルは同じディレクトリにあります。
ああ、言及を忘れてしまった、主な方法は、標準的な方法でこのすべてを呼び出し、Rational.hファイルが含まれています。すべてのファイルは同じディレクトリにあります。 – user1017413
いくつかの関数を定義しておらず、正確なリンカーエラーを投稿しているようです。 –
代入演算子は、現在のインスタンスへの参照を返す必要があることに注意してください。 –