これを実行すると、コンパイラの警告が表示されます:34 [警告] `Rational test4() のアドレスは、常に true として評価されます。しかし、デフォルトのコンストラクターが有理数0/1になるようにしようとしています。34 行目は int main() 行: cout << test4; です。
#include <iostream>
using namespace std;
class Rational
{
public:
Rational();
friend ostream& operator <<(ostream& out,Rational rational1);
private:
int numerator;
int denominator;
};
int main()
{
//Rational test1(24,6), test2(24);
Rational test4();
//cout << test1<< endl;
//cout << test2<< endl;
cout << test4;
system("pause");
}
Rational::Rational() : numerator(0), denominator(1)
{
//empty body
}
ostream& operator <<(ostream& out,Rational rational1)
{
out << rational1.numerator <<"/"<<rational1.denominator;
return out;
}