设为首页 加入收藏

TOP

C++ primer读书笔记10-继承(二)
2015-07-20 18:03:11 】 浏览:2060
Tags:primer 读书 笔记 10- 继承
//Derived.h
#pragma once
#include "base.h"
class Derived :
private Base
{
public:
Derived(void){};
~Derived(void){};
using Base::size;
using Base::fn;
};

//main.cpp
#include "Base.h"
#include "Derived.h"
#include 
      
       
using namespace std;

void main()
{
Derived XX;
Base YY;
cout<
       
        
在这里我们也可以看到如果基类的函数有重载的话,针对同一个using Base::XXX,可以使所用的名字为XXX的基类函数在派生类中得到声明。真可可谓一次声明,多个使用。


12 friend 跟继承的关系
友元跟继承没有关系。基类的派生类不能被基类的派生类访问。友元类的派生类对基类没有访问权限。


13 引用转换,转换对象
引用转换:派生类对象转换为基类类型的引用
转换对象:用派生类对象转换为基类的对象,这个时候形参是固定的,编译和运行时候的对象都是基类类型对象。派生类的基类部分被复制到形参中。
引用转换:派生类对象转换为基类的引用。但是如果赋值的话也是把派生类的基类部分赋值给基类对象,这和指针的切片效应一个道理。


14 基类和派生类的转换
派生类转对象赋给基类也是有条件才能行的,这个条件就是派生类是通过public来继承的,这样的话不论是在成员代码还是在用户代码中,都能实现
Derived d;
Base b = d;

如果是通过protected继承的,那么只能在成员定义中使用这样的代码。


15 默认的继承准则
类和结构体在默认的继承准则方面刚好相反。
<1>类继承的时候,如果不加限定符,那么默认是private继承,结构体不加限定符的时候,则是默认的public继承。
<2>此外strut中从定义开始到内部的第一个限定符之间默认的是public修饰,但是class默认的是private修饰。

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇HDU3572_Task Schedule(网络流最.. 下一篇c++ operator操作符的两种用法:..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目