小白学c++之继承、动态绑定

来源:互联网 发布:怎么样成为淘宝客 编辑:程序博客网 时间:2024/06/06 19:56








public继承后
private 限于类的范围内
protected 可以被继承子类访问
a继承b,b继承c,
虚函数的类都有虚指针,虚指针指向虚函数表,位于对象开头站4个字节
派生类也有虚指针,指向本类的虚函数(用自己版本覆盖了原有版本)

基类中的函数和派生类的函数,当函数名字相同,无论基函数参是否是虚函数,类型不同时就会会发生隐藏。

当且需要避免隐藏现象发生时,才会需要调用  “b::"基类这个命名空间

void fun(int a){    cout<<"return void"<<endl;}int fun(int a){    cout<<"return int"<<endl;}int main(int argc, const char *argv[]){    char c='a';    int d=1;    fun(d);    //fun(c);    return 0;}

上面这个例子编译时报错,可见 函数无论是 重载还是 隐藏、覆盖。决定的因素是 参数类型和参数个数,与返回值无关。

class test1{public:    void print()    {        cout<<"test1"<<endl;    }    /* data */};class test2:public test1{    /* data */};class test3:public test2{};int main(int argc, const char *argv[]){    test3 t3;    t3.test1::print();    //fun(c);    return 0;}

基类的派生类的派生类同样 拥有基类成员函数。



0 0