class Base {
public:
Base (){}
private:
int x;
public:
virtual void mf1() = 0;
virtual void mf1(int){qDebug() << __LINE__;}
virtual void mf2(){qDebug() << __LINE__;}
void mf3(){qDebug() << __LINE__;}
void mf3(double){qDebug() << __LINE__;}
virtual void mf5(){qDebug() << __LINE__;}
};
class Base2 : public Base {
public:
Base2(){qDebug() << __LINE__;}
using Base::mf1; //对一些模糊的火hinding 的函数重写提示
using Base::mf3;
virtual void mf1(){qDebug() << __LINE__;}
void mf3(){qDebug() << __LINE__;}
void mf4(){qDebug() << __LINE__;}
void mf5(){qDebug() << __LINE__;}
};
大学有关与C++的一些结论错误和一些总结
1.函数重载在编译器编译时,会把函数名和传输类型凭借成新的函数名,例如void func(int d = 8); =》void func_int这种
2.基于的函数重写,出现virtual void func(int x = 0);的函数重写,会发生什么???,子类的void func();会覆盖所有的func函数,名称遮掩规则
3.可以把函数名看成变量名,void func(int x = 0) =》 int func{int x = 0};
4.pure function 也可实现定义,不影响必须复写pure function
5.重写,重载,复写,继承,派生
6.类的变量完全可以定义函数名,减少过于臃肿的类