当前位置: 首页> 汽车> 报价 > 3g网站建设_注册商标名字_广州seo招聘网_国内最好的危机公关公司

3g网站建设_注册商标名字_广州seo招聘网_国内最好的危机公关公司

时间:2025/7/15 5:00:38来源:https://blog.csdn.net/Demilly123/article/details/146105226 浏览次数: 0次
3g网站建设_注册商标名字_广州seo招聘网_国内最好的危机公关公司

继承

继承基本语法

提要点:class 子类 : 继承方式 父类

//继承语法: class 自己定义的类(子类):继承方式 父类
#include<iostream>
using namespace std;
class Person
{
public:void body(){cout<<"Hello pretty girl"<<"\n";}void age1(){cout<<"19"<<"\n";}
};
class Alaso_shuang : public Person
{
public:void voice(){cout<<"interesting to listen"<<"\n";}
};
void test()
{Alaso_shuang Alaso;Alaso.age1();Alaso.body();Alaso.voice();
}
int main()
{test();return 0;
}


继承方式

提要点:
1.继承方式分为:公共继承(public)保护继承(protected)私有继承(private)
2.当子类以共有继承 继承父类时,父类所有的对象(除了private)都是可以以共有继承形式访问
2.当子类以 保护继承 继承父类时,子类所有继承对象均以保护继承的形式出现,并且内外不能访问
3.当子类以 私有继承 继承父类时,子类所有继承对象均以私有继承的形式出现

#include<iostream>
using namespace std;
class F
{
public:int a;
protected:int b;
private:int c;
};
class F1
{
public:int a;
protected:int b;
private:int c;
};
class F2
{
public:int a;
protected:int b;
private:int c;
};
class son : public F
{
public:void f(){a = 10;//父类中公共权限成员拿到手了}
protected:void f1(){b = 20;}
// private:
//     void f3()
//     {
//         c = 1;//报错啦
//     }
};class son1 : protected F1
{
protected:void f1(){a = 10;b = 40;//c = 90;//继续报错,说明父类隐私不允许访问}
};
class son2 : private F2
{
private:void f5(){a = 100;b = 300;}
};
void test01()
{son1 s;
}
int main()
{test01();return 0;
}


继承中对象模型

提要点:父类中所有对象均会被子类继承

#include<iostream>
using namespace std;
class f
{
public:int a;
protected:int b;
private:int c;
}; 
class son1:public f
{int a;
};
void solve()
{son1 s;cout<<"sizeof's value : "<< sizeof(s);
}
int main()
{solve();//答案是16,说明父类所有的成员都继承在了子类身上return 0;
}


继承同名成员处理方式

提要点:
1.访问子类同名成员(直接访问即可)
2.访问父类同名成员(需要加作用域)

#include<iostream>
using namespace std;
class F
{
public:F(){a = 10000;}
public:int a;
};
class son1 : public F
{public:son1(){a = 2000000;}public:int a;
};
void solve()
{son1 s;cout<<s.a<<"\n";F f;cout<<f.F::a<<"\n";//父类添加作用域
}
int main()
{solve();return 0;
}


多继承

提要点:语法:子类:public 父类1,public 父类2
(不建议使用该格式,会引来麻烦)

#include<iostream>
using namespace std;
class F1
{
public:F1(){m_A = 100000;}
public:int m_A;
};class F2
{
public:F2(){m_B = 200000;}public:int m_B;
};
class children : public F1,public F2//继承两个父类
{
public:int c_M;int d_M;
};
void test()
{children C;cout<<sizeof(C)<<"\n";cout<<C.m_A<<"\n";cout<<C.m_B<<"\n";//若是父类成员名称相同,就按照继承同名成员方式处理,直接加作用域即可
}
int main()
{test();return 0;
}


菱形继承

提要点:
1.菱形继承会导致所指对象的属性不明确,还会浪费空间
2.解决菱形继承的办法:虚继承,在父类前加一个 virtual即可
一般我们不会写菱形继承的形式,在此也不做代码解释了哈哈哈哈哈

关键字:3g网站建设_注册商标名字_广州seo招聘网_国内最好的危机公关公司

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: