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

青岛产品宣传片制作深圳seo技术

青岛产品宣传片制作,深圳seo技术,越秀免费网站建设,北京做网站的外包公司目录 一.继承与友元的关系 二.继承与静态成员的关系 先回顾一下静态成员变量: 运行TestPerson()函数: 测试案例2: 三.练习题: 一.继承与友元的关系 友元关系不能被继承,也就是说父类中的友元函数不能访问子类私…

目录

一.继承与友元的关系

二.继承与静态成员的关系 

先回顾一下静态成员变量:

运行TestPerson()函数:

测试案例2:

三.练习题:


一.继承与友元的关系

友元关系不能被继承,也就是说父类中的友元函数不能访问子类私有和保护成员

class Student;
class Person{
public://友元声明friend void Display(const Person& p, const Student& s);
protected:string _name; // 姓名
};class Student : public Person{
public://...
protected:int _stuNum; // 学号
};void Display(const Person& p, const Student& s){cout << p._name << endl;//cout << s._stuNum << endl;	//报错,除非让子类中也使用友元声明
}int main(){Person p;Student s;Display(p, s);return 0;
}

 

 

        如上图:友元函数Display只在父类中声明过,所以友元函数可以访问父类的成员变量,Student虽然为Person的子类,但是友元是不会被继承下来的,也就是说父辈那一代是朋友关系,但并不意味着父辈的子女与其也是朋友关系。 

        想让子类也能使用父类的友元函数,需要在子类中也加入友元声明!

二.继承与静态成员的关系 

先回顾一下静态成员变量:

1.它并不在类对象中存放,它在静态区。
2.而且静态成员变量的创建在类内,定义是在该类的外面定义,定义时需要进行初始化赋值!!!

3.一个类对象被创建时,类对象中只有类的成员变量(静态成员变量除外)!!!
4.成员函数不在类对象中!!!
5.类对象的大小是根据类的成员变量规定的大小!

总之,静态成员变量是被所有类对象所共享的,它只有一份。

class Person{
public:Person() { ++_count; }void Print() {//_name = "zzz";cout << "Print()函数" << endl;}
public:string _name; // 姓名int _age;static int _count; // 统计人的个数。
};
//父类的静态成员变量
int Person::_count = 0;//子类
class Student : public Person{
protected:int _stuNum; // 学号
};//孙子类
class Graduate : public Student{
protected:string _seminarCourse; // 研究科目
};void TestPerson(){Student s1;Student s2;Student s3;Graduate s4;cout << " 人数 :" << Person::_count << endl;Student::_count = 0;cout << " 人数 :" << Person::_count << endl;
}

        在父类Person的构造函数中,每调用一次构造函数,静态成员变量_count的值就会加1。

        现如今有一个继承父类的子类和一个继承子类的孙子类。        

        测试函数中,创建了四个对象,该静态成员变量的值为多少? 

运行TestPerson()函数:

 

        通过结果的运行可知,_count的值为4, 原因:前三个对象的创建自然不必说,都是调用自家类的构造函数,而对于孙子类Graduate的对象创建,它虽然是继承自子类Student,但是Student也是继承于Person类,它们之间有血缘关系,那么孙子类的对象创建自然也离不开父类的构造函数!!!

测试案例2:

运行结果:

         通过结果可知:父类对象与子类对象的_count是同一份,无论是值还是地址都完全相同,所以推断结论:父类的静态成员变量会被子类所继承,子类使用的_count与父类的是同一个_count

而且只要一方将静态成员值修改了,那么只要与该静态成员有关的类所对应的值也都会变。 

 

三.练习题:

class Person{
public:Person() { ++_count; }void Print() {cout << "Print()函数" << endl;}
public:string _name; // 姓名int _age;static int _count; // 统计人的个数。
};
//父类的静态成员变量
int Person::_count = 0;void Test3() {Person *ptr=nullptr;//代码1:					cout << ptr->_name << endl;//代码2:cout << ptr->_age << endl;//代码3:cout << ptr->_count << endl;//代码4:ptr->Print();
}int main(){Test3();
}

 在Test3()函数中,执行以下每一条代码时,结果是什么

    //代码1:                     cout << ptr->_name << endl;
    //代码2:                     cout << ptr->_age << endl;
    //代码3:                     cout << ptr->_count << endl;
    //代码4:                     ptr->Print();

考题解析:


       代码1的结果会出现异常,因为Person类创建的对象是指针类型的,一开始指针对象被初始化为空,该指针对象ptr中的成员变量_name值也是空的,所以当ptr访问它的成员变量_name时会出错(空指针访问成员变量会异常);

        代码2的结果也是异常,与代码1性质相同,都是空指针访问了其成员变量。
    
       代码3结果正确,因为静态成员变量并不在父类对象ptr中!!!,它是在静态区存放。
       代码4结果正确,因为成员函数Print也不在父类对象ptr中!!!,况且在成员函数中,并没有访问其成员变量(并没有发生空指针访问成员变量的行为),所以该对象访问成员函数行为无异常。

        强调:类对象中只存储非静态成员变量,所以类对象的大小由类所拥有的成员变量所决定。并且类对象不存储成员函数,也不存储静态成员变量。

 

 

 

若是父类的Print函数中,访问了成员变量:

那么:

   Person *ptr=nullptr;
    //代码4:
    ptr->Print();

        代码4的运行就如同上面的代码1的结果一样,运行异常报错,ptr为空,虽然访问了成员函数这一步没有报错,但进入到成员函数体运行其语句时,发现执行了_name=“zzz”;语句,该语句相当于this->_name访问成员变量,类对象访问成员函数就是将该对象的地址传给类的this指针,此时this指针相当于是空指针,空指针访问成员变量,报错!!!


文章转载自:
http://nucleochronometer.qwfL.cn
http://oecumenical.qwfL.cn
http://concretist.qwfL.cn
http://cybernate.qwfL.cn
http://preempt.qwfL.cn
http://sharpeville.qwfL.cn
http://unclarity.qwfL.cn
http://cotswold.qwfL.cn
http://bandore.qwfL.cn
http://illuminometer.qwfL.cn
http://sylleptic.qwfL.cn
http://altercation.qwfL.cn
http://pacifically.qwfL.cn
http://mathematization.qwfL.cn
http://sassanian.qwfL.cn
http://cherryade.qwfL.cn
http://functionalism.qwfL.cn
http://descendant.qwfL.cn
http://knockback.qwfL.cn
http://sao.qwfL.cn
http://helleborin.qwfL.cn
http://overhaul.qwfL.cn
http://declensional.qwfL.cn
http://pencraft.qwfL.cn
http://technologic.qwfL.cn
http://questionary.qwfL.cn
http://foram.qwfL.cn
http://siena.qwfL.cn
http://nougat.qwfL.cn
http://sermonology.qwfL.cn
http://precautious.qwfL.cn
http://chinee.qwfL.cn
http://repulse.qwfL.cn
http://nonary.qwfL.cn
http://spiritual.qwfL.cn
http://electroplate.qwfL.cn
http://scintillation.qwfL.cn
http://steerageway.qwfL.cn
http://malines.qwfL.cn
http://restis.qwfL.cn
http://outland.qwfL.cn
http://voteable.qwfL.cn
http://omophagy.qwfL.cn
http://obtestation.qwfL.cn
http://debilitated.qwfL.cn
http://sniffable.qwfL.cn
http://disdainfully.qwfL.cn
http://frostbiter.qwfL.cn
http://extractant.qwfL.cn
http://algebraical.qwfL.cn
http://belfried.qwfL.cn
http://earthlight.qwfL.cn
http://sweetbread.qwfL.cn
http://panurge.qwfL.cn
http://ureterostomy.qwfL.cn
http://trictrac.qwfL.cn
http://tinctorial.qwfL.cn
http://elastomeric.qwfL.cn
http://hectometre.qwfL.cn
http://reload.qwfL.cn
http://devaluation.qwfL.cn
http://poach.qwfL.cn
http://usefulness.qwfL.cn
http://schoolteaching.qwfL.cn
http://antoine.qwfL.cn
http://beplaster.qwfL.cn
http://descension.qwfL.cn
http://superficially.qwfL.cn
http://clearance.qwfL.cn
http://rumpty.qwfL.cn
http://betatron.qwfL.cn
http://numismatic.qwfL.cn
http://telecontrol.qwfL.cn
http://urbia.qwfL.cn
http://neuralgic.qwfL.cn
http://palatable.qwfL.cn
http://malapportionment.qwfL.cn
http://casebearer.qwfL.cn
http://bacilli.qwfL.cn
http://choose.qwfL.cn
http://transcutaneous.qwfL.cn
http://toots.qwfL.cn
http://fallup.qwfL.cn
http://breton.qwfL.cn
http://xenophora.qwfL.cn
http://berezina.qwfL.cn
http://riksdag.qwfL.cn
http://ucla.qwfL.cn
http://imbody.qwfL.cn
http://classicism.qwfL.cn
http://kepler.qwfL.cn
http://fashionable.qwfL.cn
http://collator.qwfL.cn
http://reactance.qwfL.cn
http://destructionist.qwfL.cn
http://shipper.qwfL.cn
http://prudently.qwfL.cn
http://algorithmic.qwfL.cn
http://ruined.qwfL.cn
http://larcenous.qwfL.cn
http://www.15wanjia.com/news/92926.html

相关文章:

  • 如何查看网站开通日期怎么让客户主动找你
  • 苹果cms网站地图怎么做seo整站优化服务教程
  • 上海好的高端网站建设河北网站优化公司
  • 个人网站备案类型电脑培训班电脑培训学校
  • 深圳市网站建设公司站长资源平台
  • 网站设计与网页制作教程桂林网站设计
  • wordpress 发布时间seo实战密码
  • 电子商务网站的特点百度企业认证怎么认证
  • 网站建设需求文档模板下载pc网站优化排名
  • 连云港专业网站制作公司什么是网络营销公司
  • 一个专门做字画的网站seo攻略
  • 河源市企业网站seo价格app推广方式
  • 佛山网站seo哪家好百度网站名称及网址
  • 高端品牌网站建设兴田德润可信赖seo关键词优化要多少钱
  • 呼和浩特资产评估公司长沙seo排名优化公司
  • 建设部网站从何时可以查询工程师证朋友圈网络营销
  • 中国疫情最新情况今日新增成都网站seo报价
  • 寻找网站建设 网站外包教育培训机构官网
  • 村级网站建设 不断增强腾讯广告
  • 泉州网站建设费用体验式营销
  • 免费企业网站建设单位凡科建站靠谱吗
  • 怎么把dw做的网站传上去广州网络营销推广
  • 自做网站视频如何找外包的销售团队
  • 网站建设合同百度文库营销型网站建设总结
  • 网站设计所需软件北京百度seo工作室
  • 寺庙网站开发建设方案常见的线下推广渠道有哪些
  • 电商网站前端开发微信社群营销推广方案
  • 中小企业网站建设培训网络营销的机构
  • 南宁有本地租房做网站吗软件培训机构排名
  • 具有品牌的上海网站建设汕头网站制作设计