class Fraction {
public:
Fraction();
Fraction(int);
Fraction(int, int);
~Fraction();
void setNum(int);
void setDenom(int);
int getNum(void) const;
int getDenom(void) const;
void print(void);
private:
int num;
int denom;
};
class Circle {
public:
Circle();
Circle(Fraction& arg1);
~Circle();
void print(void);
protected:
Fraction *radius;
};
と
#include "Fraction.h"
#include "Circle.h"
#include <iostream>
using namespace std;
Fraction::Fraction() {
num = 0;
denom = 1;
}
Fraction::Fraction(int n, int d) {
num = n;
denom = d;
}
Fraction& Fraction::operator=(const Fraction& arg) {
num = arg.num;
denom = arg.denom;
return *this;
}
Fraction::~Fraction() {
}
//Circle
Circle::Circle() {
radius->setNum(1);
radius->setDenom(1);
}
Circle::Circle(Fraction& arg1) {
radius->setNum(arg1.getNum());
radius->setDenom(arg1.getDenom());
}
Circle::~Circle() {
delete this->radius;
}
main() でオブジェクトを作成するときに問題が発生します
Fraction* fPtr = new Fraction(4, 1);
Circle* cPtrA = new Circle(*fPtr);
これらは両方ともクラスです。まず、コピー コンストラクターを使用して、classFraction の Numerator を 4 に、Denominator を 1 に設定します。
次に、その (4, 1) を classCircle に渡したいのですが、デバッガーを介して未処理の例外のこのエラーが発生します