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

帝国网站后台认证码错误丝印网版制作

帝国网站后台认证码错误,丝印网版制作,交流平台网站怎么做不了,平台公司和项目公司的区别一、基类和派生类对象赋值转换 在public继承时,父类和子类是一个“is - a”的关系。 子类对象赋值给父类对象/父类指针/父类引用,我们认为是天然的,中间不产生临时对象,也叫作父子类赋值兼容规则(切割/切片&#xff…

一、基类和派生类对象赋值转换

在public继承时,父类和子类是一个“is - a”的关系。

子类对象赋值给父类对象/父类指针/父类引用,我们认为是天然的,中间不产生临时对象,也叫作父子类赋值兼容规则(切割/切片)。

#include<iostream>
#include<string>using namespace std;class person
{
public:void print(){cout << "name: " << _name << endl;cout << "id: " << _id << endl;cout << "age: " << _age << endl;}protected:string _name = "zhangsan";string _id = "111111";int _age = 18;
};// 继承后父类的person的成员(成员函数+成员变量)都会变成子类的一部分。
// 这里体现出了student和teacher复用了Person的成员。
class student :public person
{private:string _class;};class teacher :public person
{private:string _collage;
};int main()
{student s;teacher t;float a = 1.1;//这里的赋值会产生临时变量,隐式类型转换int b = a;//这里必须加const,因为c指向的是所产生的临时变量,它是一个常量const int& c = a;person p = s;//这里就不用加constperson& rp = t;return 0;
}

二、继承中的作用域

父类和子类可以拥有同名成员,因为他们是独立作用域。默认情况直接访问是子类的,子类同名成员隐藏父类同名成员。此时,如果我们想要访问父类的同名成员,需指定类域。

在继承中,对于同名的成员函数,函数名相同则构成隐藏,不管参数和返回值。

#include<iostream>
#include<string>using namespace std;class person
{
public:void print(){cout << "name: " << _name << endl;cout << "id: " << _id << endl;cout << "age: " << _age << endl;}protected:string _name = "zhangsan";string _id = "111111";//身份证号int _age = 18;
};// 继承后父类的person的成员(成员函数+成员变量)都会变成子类的一部分。
// 这里体现出了student和teacher复用了Person的成员。
class student :public person
{
public:void print(){cout << "name: " << _name << endl;cout << "身份证号: " << person::_id << endl;cout << "学号: " << _id << endl;cout << "age: " << _age << endl;}private:string _class;string _id = "222222";//学号
};class teacher :public person
{private:string _collage;
};int main()
{student s;s.print();return 0;
}

三、派生类的默认成员函数

6个默认成员函数,“默认”的意思是指我们不写,编译器会变我们自动生成一个,那么在派生类中,这几个成员函数是如何生成的呢?

  1. 派生类的构造函数必须调用基类的构造函数初始化基类的那一部分成员。如果基类没有默认的构造函数,则必须在派生类构造函数的初始化列表阶段显式调用。
  2. 派生类的拷贝构造函数必须调用基类的拷贝构造完成基类的拷贝初始化。
  3. 派生类的operator=必须要调用基类的operator=完成基类的复制。
  4. 派生类的析构函数会在被调用完成后自动调用基类的析构函数清理基类成员。因为这样才能保证派生类对象先清理派生类成员再清理基类成员的顺序。(保证析构安全)
  5.  派生类对象初始化先调用基类构造再调派生类构造。
  6. 派生类对象析构清理先调用派生类析构再调基类的析构。
class Person
{
public:Person(const char* name = "aaa"): _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; //学号
};
void Test()
{Student s1("zhangsan", 20);Student s2(s1);Student s3("lisi", 23);s1 = s3;
}int main()
{Test();return 0;
}

四、补充

  1. 友元关系不能继承,也就是说基类友元不能访问子类私有和保护成员。
  2. 基类定义了static静态成员,则整个继承体系里面只有一个这样的成员。无论派生出多少个子类,都只有一个static成员实例 。

http://www.yayakq.cn/news/549298/

相关文章:

  • 设计官方网站做个企业网网站怎么做
  • 中国建设银行招聘网站甘肃分行做跨国婚恋网站赚钱吗
  • sql数据库查询网站模板商业网站有哪些
  • 电子商务网站建设需求概述两岸统一最新消息
  • 社交网站 模板个人网站页面
  • 网站建设实习困难wordpress 原创 转载
  • 淄博网站建设推广乐达安徽机械加工网
  • 个人网站首页导航栏ps制作教程手机原理网站
  • 做视频网站视频放在哪里开发软件多少钱一个月
  • 什么网站可以在线做雅思logo设计公司汉狮怎么样
  • 企业网站设计建设服务器建设官网电话号码
  • app开发公司网站网站建设需要通过哪些审批
  • 无锡工程建设信息网站wordpress插件头像
  • wordpress手机验证码注册江西短视频搜索seo哪家好
  • 用什么程序做视频网站用dw怎么做用户登录页面的网站
  • 网站制作协议村网站建设计划书
  • 企业新闻营销网站优化外包费用
  • 网站建设存在的问题和不足网站建设完成情况
  • 网站设计毕业选题内容网站ui设计例子
  • 桂林dj网站企业网站建设可分为什么层次
  • 如何防止网站被采集go语言怎么搭建网页
  • 网站托管套餐仙游h5做网站
  • 网站快速排名的方法wordpress免费主题插件下载
  • 百度网站优化方案辽宁建设工程信息网、
  • 接了做网站的单子流程官方网站入口
  • 怎么开个网站做网站第三方
  • 网站飘动专业搜索引擎seo合作
  • 黑彩网站建设需要什么东西公司网站建设深
  • 山西做网站运营的公司搭建什么网站最赚钱
  • 网站为什么做优化ppt南充阆中网站建设