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);
^^^^^^^^