HTML脚本基础和HTML按钮构造函数变得HTML查看器路口
我们说,基类HTML查看器的成员可以通过HTML按钮类的对象继承或访问,但这仅是指普通成员html查看器。构造html查看器的构造是有意义的,因为即使是继承,,其名称与HTML按钮类的名称不同。它不能是HTML按钮类的构造函数HTML查看器。当然,它不能是普通成员HTML查看器。
设计HTML按钮类时,也必须由HTML按钮类的构造函数完成继承的成员变量的初始化,但是大多数基类都具有带有私有属性的成员变量。在HTML按钮类中无法访问它们。您无法初始化HTML按钮类的HTML查看器。
这种矛盾在HTML脚本的继承中很常见。解决此问题的想法是:HTML Viewer,它在HTML按钮类HTML查看器中调用基类。
下面的示例显示了如何在HTML查看器中的HTML按钮类中调用基类以调用基类。
#包括
使用names -paceStd;
//基类人
classpeople {
受保护:
char*m_name;
intm_age;
民众:
peset(char*,int);
};
人:: people(char*name,Intage):m_name(name),m_age(age){}
// html按钮类HTML mysql
classhtml mysql:publicpepile {
私人的:
floatm_score;
民众:
html mysql(char*名称,Intage,floatscore);
voiddisplay();
};
//人们(名称,年龄)是为基类HTML查看器的构造函数致电
html mysql :: html mysql(char*name,Intage,floatscore):人(名称,agore),m_score(score){}
voidhtml mysql :: display(){{){
cout<< m_name << "is" << m_age << ", and the results are" << m_score << "." << Endl;
}
intmain(){{
html mysqlstu(“ zhichao”,16,90.5);
stu.display();
返回0;
}
运行结果是:
Zhichao的年龄为16岁,成绩为90.5。
请注意,该行23代码:
html mysql :: html mysql(char*name,Intage,floatscore):人(名称,agore),m_score(score){}
人们(名称,年龄)是将基类HTML查看器的构造函数称为稳固参数。M_SCORE(分数)是HTML按钮类的参数。他们是逗号,分开。
您还可以将基本构造函数HTML VIIWER的基础放在参数初始化表的背面:
html mysql :: html mysql(char*名称,intage,floatscore):m_score(分数),人(名称,年龄){}
但是,无论其订单如何,HTML按钮类都构建HTML查看器首先调用构造的HTML查看器的基类,然后执行其他代码(包括参数初始化表和HTML Viewer中的代码)。
html mysql :: html mysql(char*name,Intage,floatscore){
peset(名称,年龄);
m_score =得分;
}
当然,此代码只是为了促进每个人的理解。实际上,以这种方式写入是错误的,因为基本结构HTML查看器不会继承,也不能称为普通成员HTML查看器。换句话说,基本结构HTML查看器的调用可以将观众头,不能放在HTML观众体中。
此外,HTML查看器头被称为基础构造函数HTML查看器,而不是语句,因此括号中的参数是真实参数。它们不仅可以是HTML按钮类的HTML查看器参数中的参数,还可以是局部变量,常数等。
html mysql :: html mysql(char*名称,intage,floatscore):peple(“ zhichao”,16),m_score(score){}
构建HTML查看器的呼叫顺序
从上面的分析可以看出,基础结构HTML查看器始终优先考虑,这表明在创建HTML按钮类对象时,基类将首先构造HTML查看器,然后调用HTML按钮类以构造HTML查看器。如果继承关系,则有几层楼,例如:
a-> b-> c
然后,当创建C类对象时,HTML查看器构建的执行顺序是:
A类构建HTML查看器 - > B级构造的HTML查看器 - > C类HTML查看器
HTML查看器构造的呼叫顺序是从继承级别的顶部,然后从基类到HTML按钮类。
还必须注意,HTML按钮类构造了HTML查看器中的构造函数,只能调用直接基类构造函数HTML查看器,而间接基类无法调用。上面的A,B和C是示例。C是最终的HTML按钮类。B是C的直接基类,A是C的间接基类。
HTML脚本的调节是有意义的,因为我们称C中的C结构为C中的B结构,并且B还称为A的结构HTML查看器,这等同于C间接(或隐式)A的结构HTML称为HTMLViewer,如果称为HTMLViewer,则A的结构HTML查看器的结构显示在C中,然后A的结构HTML查看器的结构将被调用两次。相应地,初始化工作也进行了两次。CPU时间和内存无益,因此HTML脚本禁止在C中c式呼叫中的a结构的HTML查看器。
基本构造函数HTML查看调用规则
实际上,当通过HTML按钮类创建对象时,基类的结构必须称为HTML查看器,这是语法调节。换句话说,最好在定义HTML按钮时指定基础构造函数HTML查看器HTML查看器中的课程;如果未指示,则基类的默认构造函数称为HTML查看器(无参数的HTML查看器);然后编译失败。请请参见以下示例:
#包括
使用names -paceStd;
//基类人
classpeople {
民众:
Peical();//默认构造基类HTML查看器
人(char*名称,Intage);
受保护:
char*m_name;
intm_age;
};
People :: People():m_name(“ xxx”),m_age(0){}
人:: people(char*name,Intage):m_name(name),m_age(age){}
// html按钮类HTML mysql
classhtml mysql:publicpepile {
民众:
html mysql();
html mysql(char*,int,float);
民众:
voiddisplay();
私人的:
floatm_score;
};
html mysql :: html mysql():m_score(0.0){} // html按钮类默认值
html mysql :: html mysql(char*name,Intage,floatscore):人(名称,agore),m_score(score){}
voidhtml mysql :: display(){{){
cout<< m_name << "is" << m_age << ", and the results are" << m_score << "." << Endl;
}
intmain(){{
html mysqlstu1;
stu1.display();
html mysqlstu2(“ zhichao”,16,90.5);
stu2.display();
返回0;
}
操作结果:
XXX的年龄为0,等级为0。
Zhichao的年龄为16岁,成绩为90.5。
创建对象stu1时,执行HTML按钮类HTML ViewerHtml mysql :: HTML mysql()的结构。它没有指示要调用HTML查看器的基类的结构。从操作的结果可以清楚地看出。默认情况下,该系统被默认情况下调用。
创建对象stu2时,HTML按钮类的构造函数由HTML ViewerHtml mysql :: HTML mysql(char*name,Intage,floatsCore)执行,这表明sase类HTML Viewer的构造函数。
在第27码代码中,如果删除了人员(名称,年龄),则还将调用默认的构造HTML查看器。第37行的输出结果将成为:
XXX的年龄为0,等级为90.5。
如果删除了基类中没有参数的构造,则会发生汇编错误,因为创建对象stu1时,您需要调用人类类HTML查看器的默认构造函数,并且People类已明确定义了构造HTML查看器编译和编译设备不会再生到默认的构造函数HTML查看器中。
发表评论