当前位置: 首页 > news >正文

网站建设公司行业描述填什么建筑设计公司经营范围

网站建设公司行业描述填什么,建筑设计公司经营范围,wordpress上图片不显示,信息流广告公司排名一、继承的规则 #xff08;1#xff09;基类成员在派生类中的访问权限不得高于继承方式中指定的权限。例如#xff0c;当继承方式为protected时#xff0c;那么基类成员在派生类中的访问权限最高也为protected#xff0c;高于protected会降级为protected#xff0c;但低…一、继承的规则 1基类成员在派生类中的访问权限不得高于继承方式中指定的权限。例如当继承方式为protected时那么基类成员在派生类中的访问权限最高也为protected高于protected会降级为protected但低于protected不会升级。当继承方式为public时继承方式则保持不变 2继承方式中的public、protected、private是用来指定基类成员在派生类中最高访问权限的 3不管继承方式是什么基类中的private成员在派生类中始终不能使用不能在派生类的成员函数中访问和使用 4如果希望基类的成员既不向外暴漏不能通过对象访问还能在派生类中使用那么只能声明为protected 5由于private和protected继承方式会改变基类成员在派生类中的访问权限导致继承关系复杂所以在实际开发中一般使用public。 6在派生类中可以通过基类的公有成员函数间接访问基类的私有成员 7使用using关键字可以改变基类成员在派生类中的访问权限。 继承访问权限 #include iostreamclass A { public:int m_A 5; protected:int m_B 10; private:int m_C 15; };class B : public A { public:int getB(){return m_B;} };int main() {B b;b.m_A 5; // 没问题//b.m_B 10; // 不能访问m_B是受保护成员变量//b.m_C 15; // 不能访问m_C是私有变量派生类不能访问b.getB(); // 可以通过成员函数访问m_B }使用using改变继承属性 #include iostreamclass A { public:int m_A 5; protected:int m_B 10; private:int m_C 15; };class B : public A { public:using A::m_B;int getA(){return m_A;} private:using A::m_A; };int main() {B b;// b.m_A 5; // 不能访问使用using m_A变成了私有成员属性b.m_B 10; // 没问题使用usingm_B变成了public//b.m_C 15; // 不能访问m_C是私有变量派生类不能访问b.getA(); // 可以通过成员函数访问m_A }二、类的对象模型 1创建派生类对象时先调用基类构造函数再调用派生类构造函数 2销毁派生类对象时先调用派生类析构函数再调用基类析构函数 3创建派生类对象时只会申请一次内存派生类对象包含了基类对象的内存空间this指针相同的 4创建派生类对象时先初始化基类对象再初始化派生类对象 5对派生类对象用sizeof得到的是基类所有成员包括私有成员派生类对象所有成员的大小 #include iostream using namespace std;void* operator new(size_t size) {void* ptr malloc(size); // 申请内存cout 申请到的内存地址是 ptr size大小 size endl;return ptr; }void operator delete(void* ptr) {if (ptr nullptr) return;free(ptr); // 释放内存cout 释放了内存。 endl; }class A { public:int m_A 5; protected:int m_B 10; private:int m_C 15; public:A(){cout A中this指针是 this endl;cout A中m_A指针是 m_A endl;cout A中m_B指针是 m_B endl;cout A中m_C指针是 m_C endl;} };class B : public A { public:int m_D 30;B(){cout A中this指针是 this endl;cout A中m_A指针是 m_A endl;cout A中m_B指针是 m_B endl;//cout A中m_C指针是 m_C endl; // 私有无法访问cout A中m_D指针是 m_D endl;} };int main() {cout 基类占用内存的大小是 sizeof(A) endl;cout 派生类占用内存的大小是 sizeof(B) endl;B* b new B;delete b;}打印输出 基类占用内存的大小是12 派生类占用内存的大小是16 申请到的内存地址是00000168C69232B0 size大小16 A中this指针是00000168C69232B0 A中m_A指针是00000168C69232B0 A中m_B指针是00000168C69232B4 A中m_C指针是00000168C69232B8 A中this指针是00000168C69232B0 A中m_A指针是00000168C69232B0 A中m_B指针是00000168C69232B4 A中m_D指针是00000168C69232BC 释放了内存。6在C中不同继承方式的访问权限只是语法上的处理 7对派生类对象用memset()清空基类私有成员 8用指针可以访问到基类中的私有成员没有内存对齐没有占位符 #include iostream using namespace std;void* operator new(size_t size) {void* ptr malloc(size); // 申请内存cout 申请到的内存地址是 ptr size大小 size endl;return ptr; }void operator delete(void* ptr) {if (ptr nullptr) return;free(ptr); // 释放内存cout 释放了内存。 endl; }class A { public:int m_A 5; protected:int m_B 10; private:int m_C 15; public:A(){cout A中this指针是 this endl;cout A中m_A指针是 m_A endl;cout A中m_B指针是 m_B endl;cout A中m_C指针是 m_C endl;}void funcA(){cout m_A m_A ,m_B m_B ,m_C m_C endl;} };class B : public A { public:int m_D 30;B(){cout A中this指针是 this endl;cout A中m_A指针是 m_A endl;cout A中m_B指针是 m_B endl;//cout A中m_C指针是 m_C endl; // 私有无法访问cout A中m_D指针是 m_D endl;}void funcB(){cout m_D m_D endl;} };int main() {cout 基类占用内存的大小是 sizeof(A) endl;cout 派生类占用内存的大小是 sizeof(B) endl;B* b new B;b-funcA(); b-funcB();//memset(b, 0, sizeof(B)); // m_A m_B m_C m_D都被清零*((int*)b 2) 100;b-funcA(); b-funcB();delete b;} 打印输出 基类占用内存的大小是12 派生类占用内存的大小是16 申请到的内存地址是00000240B7313490 size大小16 A中this指针是00000240B7313490 A中m_A指针是00000240B7313490 A中m_B指针是00000240B7313494 A中m_C指针是00000240B7313498 A中this指针是00000240B7313490 A中m_A指针是00000240B7313490 A中m_B指针是00000240B7313494 A中m_D指针是00000240B731349C m_A5,m_B10,m_C15 m_D30 m_A5,m_B10,m_C100 m_D30 释放了内存。三、如何构造基类 1创建派生类对象时程序首先调用基类构造函数然后再调用派生类构造函数 2如果没有指定基类构造函数将使用基类的默认构造函数 3可以用初始化列表指明要使用的基类构造函数 4基类构造函数负责初始化被继承的数据成员派生类构造函数主要用于初始化新增的数据成员 5派生类的构造函数总是调用一个基类构造函数包括拷贝构造函数。 #include iostream using namespace std;class A { public:int m_A; private:int m_B; public:A():m_A(0), m_B(0) {cout 调用基类默认构造函数A() endl;}A(int a, int b) :m_A(a), m_B(b) {cout 调用基类构造函数A(int a, int b) endl;}A(const A a) :m_A(a.m_A), m_B(a.m_B) {cout 调用基类拷贝构造函数A(int a, int b) endl;}void funcA(){cout m_A m_A ,m_B m_B endl;} };class B : public A { public:int m_C 30;B():m_C(0) {cout 调用基类默认构造函数B() endl;}B(int a, int b, int c) : A(a, b), m_C(c){cout 调用基类构造函数B(int a, int b, int c) endl;}B(const A a, int c) :A(a), m_C(c) {cout 调用基类拷贝构造函数B(const A a, int c) endl;}void funcB() {cout m_C m_C endl;} };int main() {B b1; // 调用基类默认构造函数b1.funcA(); b1.funcB();B b2(1, 2, 3); // 将调用基类两个参数的构造函数b2.funcA(); b2.funcB();A a(10, 20);B b3(a, 30);b3.funcA(); b3.funcB(); // 调用基类构造函数 }打印输出 调用基类默认构造函数A() 调用基类默认构造函数B() m_A0,m_B0 m_C0 调用基类构造函数A(int a, int b) 调用基类构造函数B(int a, int b, int c) m_A1,m_B2 m_C3 调用基类构造函数A(int a, int b) 调用基类拷贝构造函数A(int a, int b) 调用基类拷贝构造函数B(const A a, int c) m_A10,m_B20 m_C30四、名字遮蔽与类作用域 1如果派生类中的成员包括成员变量和成员函数和基类中的成员重名通过派生类对象或者在派生类的成员函数中使用该成员时将使用派生类新增的成员而不是基类的 2基类的成员函数和派生类的成员函数不会构成重载如果派生类有同名函数那么就会遮蔽基类中的所有同名函数 3类是一种作用域每个类都有它自己的作用域在这个作用域之内定义成员 4在类的作用域之外普通的成员只能通过对象可以是对象本身也可以是对象指针或对象引用来进行访问静态成员可以通过对象访问也可以通过类访问 5在成员前面加类名和域解析符可以访问对象的成员 6如果不存在继承关系域名和域解析符可以省略不写 7当存在继承关系时基类的作用嵌套派生类的作用域中如果成员在派生类的作用域已经找到就不会在基类作用域中继续查找如果没有找到则继续在鸡类作用域中查找。 五、继承的特殊关系 1如果继承方式是公有的派生类对象可以使用基类成员 2可以把派生类对象赋值给基类对象包括私有成员但是会舍弃非基类的成员 3基类指针可以在不进行显示转换的情况下指向派生类对象 4基类引用可以在不进行显示转换的情况下引用派生类对象。 注意 1基类指针或引用只能调用基类的方法不能调用派生类的方法 2可以用派生类构造基类 3如果函数的型参是基类实参可以用派生类 4C要求指针和引用类型与赋给的类型匹配这一规则对继承来说是例外。但是这种例外只是单向的不可以将基类对象和地址赋给派生类引用和指针没有价值没有讨论的必要。
http://www.sczhlp.com/news/269319/

相关文章:

  • 网站需要哪些网站伪静态作用
  • 扬中本地网站鄂州seo厂家
  • 苏州h5网站建设动漫网站开发 百度一下
  • 网站建设设备清单网站开发个人基本情况1000字
  • 有没有人通过网站建设卖东西的wordpress友链模板
  • 做网站公司哪家正规网站标准宽度
  • 最好网站开发公司重庆网站建站系统
  • 做的比较好的法律实务培训网站各类东莞微信网站建设
  • 公司网站开发的核心技术聊天软件开发哪个好点
  • 博采网络科技漳州seo顾问
  • 小网站源码建设部设计院网站
  • 莱芜高端网站建设价格店铺装修设计网
  • 网站到期如何续费阿里巴巴官网首页1688
  • 承德微网站开发50m专线做视频网站
  • 怎么做原创动漫视频网站房产系统平台
  • 网站都有什么类型哈尔滨专业网站建设定制
  • 2025 年广州漏水维修公司最新推荐排行榜:广东恒久等实力企业深度解析,助力选靠谱服务商广东专业漏水维修/广东屋面漏水维修公司推荐
  • 2025年11月水质分析仪靠谱供应商:四参数/多参数水质分析仪知名品牌采购推荐
  • RK3588 上的 LLM(三):板端部署 RKLLM 并进行大模型推理(以 RK3588 为例)
  • c语言做网站后端做网站用哪个软件最好php
  • 开发区全力做好网站建设自适应手机模板
  • 学校网站建设营运预算网站服务器有哪些
  • 大神部落 网站建设高端定制网站设计公司
  • 常州网站制作公司多吗关于对网站建设情况的通报
  • 什么是模板网站长春网站建设58同城
  • 龙岩做网站改版费用wordpress优化cookie
  • 广州设计网站天河网站建设策划
  • 修改网站搜索缩略图腾讯视频创作平台
  • 网站建设网站免费特价主机网站空间租用
  • 市场调研报告范文2000张家港做网站优化价格