-1
私のプログラムでは、親クラスとそのクラスの2つの派生クラスがあります。 関数(仮想クラス、各クラス/派生クラスで異なる)私は他のクラスのvarを(newを使用して)割り当てます。その結果、コンパイルエラーが発生します。 どうすれば修正できますか?親クラス内のC++で派生したカルルスを作成する
部分コード: 親クラス:
class client
{
protected:
double surf_hours,disc_space,phone_time;
string first_name,last_name;
public:
.
.
.
virtual client* is_valid_plan()
{
client *B,*C;
double client, business, company;
client=compute_bill();
B= new business(first_name,last_name,surf_hours,disc_space,phone_time);
C= new company(first_name,last_name,surf_hours,disc_space,phone_time);
.
.
.
};
派生クラス#1:
class business:public client
{
public:
business(string name, string last, double surf, double disc, double phone):client(name,last,surf,disc,phone){}
client* is_valid_plan()
{
client *B,*C;
double client, business, company;
business=compute_bill();
B= new client(first_name,last_name,surf_hours,disc_space,phone_time);
C= new company(first_name,last_name,surf_hours,disc_space,phone_time);
.
.
.
};
派生クラス#2:あなたは、変数/クラス名が競合している
class company:public client
{
public:
company(string name, string last, double surf, double disc, double phone):client(name,last,surf,disc,phone){}
client* is_valid_plan()
{
client *B,*C;
double client, business, company;
company=compute_bill();
B= new business(first_name,last_name,surf_hours,disc_space,phone_time);
C= new client(first_name,last_name,surf_hours,disc_space,phone_time);
.
.
.
};
コンパイラのエラーに関する質問を投稿するときは、完全な、未編集の(コンパイラまたはリンカが提供する情報ノートを含む)実際のエラーを含めてください。また、あなたがエラーをどの行に表示するのか、コメントなどで表示するコードに印を付けてください。 –
しかし、この場合、循環インクルード依存関係があると推測すると、それらのクラスを使用する前に 'business'と' company'と 'client'が宣言されなくなります。私のアドバイスは、クラスを前方宣言とともに、別のクラス定義とメンバー関数定義に分割することです。私。クラスをヘッダファイル内のクラス定義と、ソースファイル内のメンバ関数定義(実装)とに分離する。 –