2016-05-25 4 views
-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); 
     . 
     . 
     . 
}; 
+0

コンパイラのエラーに関する質問を投稿するときは、完全な、未編集の(コンパイラまたはリンカが提供する情報ノートを含む)実際のエラーを含めてください。また、あなたがエラーをどの行に表示するのか、コメントなどで表示するコードに印を付けてください。 –

+3

しかし、この場合、循環インクルード依存関係があると推測すると、それらのクラスを使用する前に 'business'と' company'と 'client'が宣言されなくなります。私のアドバイスは、クラスを前方宣言とともに、別のクラス定義とメンバー関数定義に分割することです。私。クラスをヘッダファイル内のクラス定義と、ソースファイル内のメンバ関数定義(実装)とに分離する。 –

答えて

1

double client, business, company; 
        ^^^^^^^^ 
    client=compute_bill(); 
    B= new business(first_name,last_name,surf_hours,disc_space,phone_time); 
      ^^^^^^^^ 

あなたのbusiness変数のより良い名前を選択してください。同じ問題は、他の変数名であるclientcompanyです。

関連する問題