重载:
同一作用域中,函数名相同,函数的参数表不同(个数,类型,顺序,const),
隐藏:
父子类中,函数名相同,参数表相同,但是父类中函数没有virtual修饰。
父子类中,函数名相同,参数表不同,不管父类中 ,是否有virtual修饰,
都会隐藏。
覆盖:
父子类中,函数名相同,参数表也相同,但是父类中的函数有virtual 修饰。
设有如下类系:
class Visitor {
public:
virtual bool visit (int credit); // ①
virtual bool visit (double cash); // ②
};
class ValidVisitor : public Visitor {
public:
bool visit (int credit); // ③
};
class MyValidVisitor : public ValidVisitor {
public:
bool visit (double cash); // ④
};
其中包含了4个版本的visit函数,请分析它们之间的关系。
其中②和①是 关系。
A.重载(Overload)
B.覆盖(Override)
C.隐藏(Hide)
D.没有
正确答案:A
其中③和①是 关系。
A.重载(Overload)
B.覆盖(Override)
C.隐藏(Hide)
D.没有
正确答案:B
其中③和②是 关系。
A.重载(Overload)
B.覆盖(Override)
C.隐藏(Hide)
D.没有
正确答案:C
其中④和③是 关系。
A.重载(Overload)
B.覆盖(Override)
C.隐藏(Hide)
D.没有
正确答案:C
其中④和②是 关系。
A.重载(Overload)
B.覆盖(Override)
C.隐藏(Hide)
D.没有
正确答案:B
重载:
同一作用域中,函数名相同,函数的参数表不同(个数,类型,顺序,const),
隐藏:
父子类中,函数名相同,参数表相同,但是父类中函数没有virtual修饰。
父子类中,函数名相同,参数表不同,不管父类中 ,是否有virtual修饰,
都会隐藏。
覆盖:
父子类中,函数名相同,参数表也相同,但是父类中的函数有virtual 修饰。
设有如下类系:
class Visitor {
public:
virtual bool visit (int credit); // ①
virtual bool visit (double cash); // ②
};
class ValidVisitor : public Visitor {
public:
bool visit (int credit); // ③
};
class MyValidVisitor : public ValidVisitor {
public:
bool visit (double cash); // ④
};
其中包含了4个版本的visit函数,请分析它们之间的关系。
其中②和①是 关系。
A.重载(Overload)
B.覆盖(Override)
C.隐藏(Hide)
D.没有
正确答案:A
其中③和①是 关系。
A.重载(Overload)
B.覆盖(Override)
C.隐藏(Hide)
D.没有
正确答案:B
其中③和②是 关系。
A.重载(Overload)
B.覆盖(Override)
C.隐藏(Hide)
D.没有
正确答案:C
其中④和③是 关系。
A.重载(Overload)
B.覆盖(Override)
C.隐藏(Hide)
D.没有
正确答案:C
其中④和②是 关系。
A.重载(Overload)
B.覆盖(Override)
C.隐藏(Hide)
D.没有
正确答案:B