一.同名覆盖引发的问题 父子间的赋值兼容--子类对象可以当作父类对象使用(兼容性) 1.子类对象可以直接赋值给父类对象 2.子类对象可以直接初始化父类对象 3.父类指针可以指向子类对象 4.父类引用可以直接引用子类对象 代码示例 #include #include using namespace std; class Parent { public: int mi; void add(int i) { mi += i; } void add(int a, int b) { mi += (a +…
class 类继承默认是private, struct 默认继承是public C++中的隐藏: 只要派生类中出现和基类一样的函数名,基类中的函数就会被派生类中的函数给隐藏(如果派生类和基类中的函数名,函数参数列表一样,并且基类函数前面有virtual,那么此种情况是重写) eg: class A { public: void play(int x, int y){ cout <<"in class A"<< x <<" "<…
可以在查询时给字段赋别名,但是需要注意以下:*的位置要在最前面,放在其他地方都会出错.这种写法同名覆盖的字段还在,然后在*的后面加上别名字段,已经可以满足所有需求了 SELECT *,r.id as rid,u.id as uid FROM remarks_tblogs as r left join user_tblogs as u on r.userId=u.id ORDER BY r.id desc P.S. 一段thinkphp数据库查询代码,注意各种别名的使用 $remarks = M…
多态和覆盖 多态是面向对象编程中最为重要的概念之一,而覆盖又是体现多态最重要的方面.对于像c#和java这样的面向对象编程的语言来说,实现了在编译时只检查接口是否具备,而不需关心最终的实现,即最终的实现方式是在运行时才会决定.这给强类型语言提供了强大的灵活性,请看下面的例子: using System; namespace study00 { class Person { public string Name { set; get; } public virtual void sayHello(…