C++ 在c+;中的父类内创建派生的CALS+;

C++ 在c+;中的父类内创建派生的CALS+;,c++,inheritance,C++,Inheritance,在我的程序中,我有一个父类和该类的两个派生类。 在一个函数(虚函数,每个类/派生函数不同)中,我分配(使用新函数)其他类的变量。结果导致编译错误。 我怎样才能修好它 部分代码: 父类: class client { protected: double surf_hours,disc_space,phone_time; string first_name,last_name; public: . . . virtual client* is_valid_plan()

在我的程序中,我有一个父类和该类的两个派生类。 在一个函数(虚函数,每个类/派生函数不同)中,我分配(使用新函数)其他类的变量。结果导致编译错误。 我怎样才能修好它

部分代码: 父类:

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:

衍生类#2:


存在变量/类名冲突:

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

业务
变量选择更好的名称。其他变量名也存在同样的问题:
client
company

在发布有关编译器错误的问题时,请包括您得到的实际错误、完整的、完整的和未编辑的(包括编译器或链接器提供给您的任何信息注释)。另外,请在您显示的代码中标出错误所在的行(例如,使用注释)。但是,在这种情况下,很容易猜测您具有循环包含依赖项,从而导致
业务
公司
客户
在使用这些类之前未声明。我的建议是将类拆分为单独的类定义、成员函数定义以及类的前向声明。也就是说,将类分为头文件中的类定义和源文件中的成员函数定义(实现)。
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);
         .
         .
         .
};
   double client, business, company;
                  ^^^^^^^^
   client=compute_bill();
   B= new business(first_name,last_name,surf_hours,disc_space,phone_time);
          ^^^^^^^^