ここに問題があります: Voltmeter、Ammeter、ResistanceMeter という名前の 3 つの基本クラスを作成します。Voltmeter クラスには、メンバ関数 volt、デフォルト以外のコンストラクタ、コピー コンストラクタ、および関数 measureVolt() があります。Ammeter クラスには、メンバ関数 amp、非デフォルト コンストラクタ、コピー コンストラクタ、および関数 measureCurrent() があります。ResistanceMeter クラスには、メンバ関数 resistance、非デフォルト コンストラクタ、コピー コンストラクタ、および関数 measureResistance() があります。次に、Voltmeter、Ammeter、ResistanceMeter のオブジェクトを持つクラス Multimeter を作成して、これらのクラスの機能を使用できるようにします。
私の解決策では、コンパイラは、クラス「マルチメーター」で使用したすべてのオブジェクトで未定義の参照を言います。コードは次のとおりです。
#include<iostream>
#include<cstdio>
#include<string>
using namespace std;
class voltmeter{ //class - Voltmeter
float volt;
public:
voltmeter(); //default constructor
voltmeter(float v){ //non default constructor
volt = v;
}
voltmeter(voltmeter &ob) //copy constructor
{
volt = ob.volt;
}
void set_volt(float v)
{
volt = v;
}
float get_volt(void)
{
return volt;
}
void measure_volt(void) //measureVolt()
{
cout<<"Current volt in the circuit is: "<<volt<<"V"<<endl;
}
};
class ameter
{
float amp;
public:
ameter();
ameter(float a)
{
amp = a;
}
ameter(ameter &ob)
{
amp = ob.amp;
}
void measure_current(void)
{
cout<<"Current flow in circuit is: "<<amp<<"amp"<<endl;
}
void set_amp(float a)
{
amp = a;
}
float get_amp(void)
{
return amp;
}
};
class res_meter //class - resistanceMeter
{
float resistance;
public:
res_meter();
res_meter(float res)
{
resistance = res;
}
res_meter(res_meter &ob)
{
resistance = ob.resistance;
}
float get_resistance(void)
{
return resistance;
}
void set_resistance(float res)
{
resistance = res;
}
void meas_res(void)
{
cout<<"Current resistance in circuit is "<<resistance<<"ohm"<<endl;
}
};
class multimeter
{
res_meter r1;
ameter a1;
voltmeter v1;
public:
multimeter(){
r1.set_resistance(12.30);
a1.set_amp(22.5);
v1.set_volt(26.9);
}
// ~multimeter();
void show_info(void)
{
cout<<"Current Multimeter Status is as below: "<<endl;
a1.measure_current();
r1.meas_res();
v1.measure_volt();
}
};
int main()
{
multimeter M;
M.show_info();
return 0;
}