我正在尝试自学C++,而且我正在进行有关构造函数的基本练习.我有一个程序出乎意料地行为:
Fraction.h:
#include <iostream>
#ifndef FRACTION_H
#define FRACTION_H
using namespace std;
class Fraction
{
private:
int num;
int denom;
static int gcd(int a, int b);
void reduce();
public:
Fraction(int n=0, int d=1);
Fraction(Fraction& f);
~Fraction();
Fraction& operator=(const Fraction& f);
friend Fraction operator+(const Fraction& f1, const Fraction& f2);
friend ostream& operator<<(ostream& out, const Fraction& f);
};
#endif // FRACTION_H
Run Code Online (Sandbox Code Playgroud)
Fraction.cpp(省略了一些实现):
#include "../include/Fraction.h"
#include <cassert>
#include <iostream>
using namespace std;
int Fraction::gcd(int a, int b) {
// implementation omitted
}
void Fraction::reduce() …Run Code Online (Sandbox Code Playgroud)