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

网站每月流量哪个网站可以做担保交易平台

网站每月流量,哪个网站可以做担保交易平台,网站建设费用是多少,城乡规划师证报考条件C之继承#xff1c;2#xff1e;【详解】 1. 派生类的默认成员函数1.1 1. 构造成员函数1.2 拷贝复制1.3 构造函数和析构函数的执行顺序 2. 继承和友元3. 继承与静态成员 1. 派生类的默认成员函数 1.1 1. 构造成员函数 派生类的构造函数必须调用基类的构造函数初始化基类的那… C之继承2【详解】 1. 派生类的默认成员函数1.1 1. 构造成员函数1.2 拷贝复制1.3 构造函数和析构函数的执行顺序 2. 继承和友元3. 继承与静态成员 1. 派生类的默认成员函数 1.1 1. 构造成员函数 派生类的构造函数必须调用基类的构造函数初始化基类的那一部分成员。如果基类没有默认的构造函数则必须在派生类构造函数的初始化列表阶段显示调用。 无论是否显示的调用基类的构造成员函数都会自动调用基类的默认成员函数 #include iostream using namespace std; class Person { public:Person(const char* name peter): _name(name){cout Person() endl;}string _name; };class Student : public Person { public:Student(const char* name, int num): _num(num){cout Student() endl;} protected:int _num; }; int main() {Student s1(jack, 18);return 0; }显示调用后 上述的后半段的意义是如果基类没有默认的构造函数那么是这样的 Person(const char* name peter): _name(name){}可以进行传参来构造对象如果你在派生类没有显示的调用它那么不能进行进行传参来构造。 #include iostream using namespace std;class Person { public:Person(const char* name peter): _name(name){cout Person() endl;}string _name; };class Student : public Person { public:Student(const char* name, int num): _num(num){cout Student() endl;} protected:int _num; }; int main() {Student s1(jack, 18); cout s1._name; return 0; }上图可以看到传入的参数是“jack” 但是构造出来的对象属性是“peter”。   至于必须在初始化列表显示的调用是因为祖师爷定下的规则是先构造基类再构造派生类初始化列表是先于构造函数执行的。   Person(name)在初始化列表中的顺序可以随意改动的因为初始化列表的执行顺序只跟声明的顺序有关跟初始化列表中的先后顺序无关。 1.2 拷贝复制 分别是拷贝构造函数和operator复制函数 派生类的拷贝构造函数必须调用基类的拷贝构造完成基类的拷贝初始化。派生类的operator必须要调用基类的operator完成基类的复制。 上面两条的原因和构造函数的一样就不在赘述。 下面是验证的代码 #include iostream using namespace std;class Person { public:Person(const char* name peter): _name(name){cout Person() endl;}Person(const Person p): _name(p._name){cout Person(const Person p) endl;}Person operator(const Person p){cout Person operator(const Person p) endl;if (this ! p)//防止复制相同的对象相同的就不必进行下面步骤了_name p._name;return *this;} protected:string _name; // 姓名 };class Student : public Person { public:Student(const char* name, int num): Person(name), _num(num){cout Student() endl;}Student(const Student s): Person(s), _num(s._num){cout Student(const Student s) endl;}Student operator (const Student s){cout Student operator (const Student s) endl;if (this ! s)//防止复制相同的对象相同的就不必进行下面步骤了{Person::operator (s);_num s._num;}return *this;} protected:int _num; //学号 }; int main() {Student s1(jack, 18);Student s2(s1);return 0; }1.3 构造函数和析构函数的执行顺序 派生类的析构函数会在被调用完成后自动调用基类的析构函数清理基类成员。因为这样才能保证派生类对象先清理派生类成员再清理基类成员的顺序。派生类对象初始化先调用基类构造再调派生类构造。派生类对象析构清理先调用派生类析构再调基类的析构。 首先为什么一定先调用基类构造函数再调用派生类的的构造函数呢   如果你先调用派生类的构造函数派生类是继承基类的那么派生类中就可以使用基类中的属性和行为但是此时还没有调用基类的构造函数所以不能这样。 为什么一定先调用派生类的析构函数再调用基类的析构函数呢   如果先调用基类的析构函数的话会释放掉一些变量或指针那么派生类使用继承过来的这些变量或者指针的时候它们已经变成了野指针因此不能如此。 下面是完整代码大家可以尝试验证 #include iostream using namespace std;class Person { public:Person(const char* name peter): _name(name){cout Person() endl;}Person(const Person p): _name(p._name){cout Person(const Person p) endl;}Person operator(const Person p){cout Person operator(const Person p) endl;if (this ! p)_name p._name;return *this;}~Person(){cout ~Person() endl;} protected:string _name; // 姓名 };class Student : public Person { public:Student(const char* name, int num): Person(name), _num(num){cout Student() endl;}Student(const Student s): Person(s), _num(s._num){cout Student(const Student s) endl;}Student operator (const Student s){cout Student operator (const Student s) endl;if (this ! s){Person::operator (s);_num s._num;}return *this;}~Student(){cout ~Student() endl;} protected:int _num; //学号 }; int main() {Student s1(jack, 18);Student s2(s1);Student s3(rose, 17);s1 s3;return 0; }2. 继承和友元 友元关系不能继承也就是说基类友元不能访问子类私有和保护成员 #include iostream using namespace std;class Student; class Person { public:friend void Display(const Person p, const Student s); protected:string _name zhangsan; // 姓名 };class Student : public Person { public:protected:int _num; //学号 };void Display(const Person p, const Student s) {cout p._name endl;cout s._num endl; } int main() {Student s;Person p;Display(p, s);return 0; }从上面图中可以看出。 3. 继承与静态成员 基类定义了static静态成员则整个继承体系里面只有一个这样的成员。无论派生出多少个子类都只有一个static成员实例 。 #include iostream #include string using namespace std;class Person { public:Person(){_count;age;}public:static int _count;int age 0; // 姓名 }; int Person::_count 0;class Student : public Person { public:protected:int _num; //学号 };int main() {Student s;Person p;cout Person::_count: Person::_countendl;cout Person::age: p.ageendl;return 0; }运行结果是 由此可见静态成员_count是共有的只有一个。 创作不易你的点赞和关注都是对我莫大的鼓励再次感谢您的观看
http://www.ho-use.cn/article/10818152.html

相关文章:

  • 网站后台管理系统cms做淘宝客网站有什么服务器
  • 免费网站模板的制作方法html页面生成器
  • 如何利用网站新闻做推广免费网络推广怎么做
  • 网站建设的500字小结门头沟新乡网站建设
  • 南昌网站排名优化软件查看网站的 cms
  • 网站模板提供源码深圳手机移动网站开发
  • 群晖nas做网站性能wordpress固定链接中文
  • 襄阳哪里做网站友情链接怎么添加
  • 凡科建站免费版可以做什么正规的推文平台
  • wordpress 安装中文字体windows优化大师有什么功能
  • 学校网站设计实验报告互动营销的案例有哪些
  • 石家庄做网站的有哪些公司30天网站建设 视频教程
  • 网站后缀类型利尔化学股票股吧
  • 淘宝网站建设可以申请赔款word模板网
  • 电子商务网站建设系统特点软件ui设计教程
  • 网站副标题的作用怎么做根优酷差不多的网站
  • 试列出网站开发建设的步骤铜川有哪些需要网页设计师的公司
  • 建设电影网站需要多少钱营销型网站建设的优势有哪些
  • 济南做网站的公司s上海网站建设
  • 设计在线设计网站企业对企业的电子商务网站有哪些
  • 网站首页面设计代码国内网站 专做国外视频
  • 个人婚礼网站模板宣威网站建设公司
  • python做网站优势沈阳做网站的公司
  • 怎么将网站权重提上去微信导航网站怎么做
  • 网站建设厘金手指排名二一河南海华工程建设监理公司网站
  • 网站建设除凡科外还有哪些开源企业建站系统哪个好
  • 四川网站建设 招标网络营销论文5000字
  • 社交平台运营是做什么的河南郑州网站推广优化外包
  • 呼和浩特网站建设公司快站淘客
  • 做推广哪个网站好360搜索引擎首页