c++基类成员在派生类中的访问控制
来源:互联网 发布:数据标注 编辑:程序博客网 时间:2024/06/16 10:48
公用继承:基类成员保持自己的访问级别;
受保护继承:基类的public和protected成员在派生类中为protected成员
私有继承:基类的所有成员在派生类中为private成员。
接口继承与实现继承;
public派生类继承基类的接口,它具有与基类相同的接口。涉及良好的类层次中,public派生类的对象可以用在任何需要基类对象的地方。
使用private或protected派生的类不继承基类的接口,相反,这些派生通常被称为实现继承。派生类在实现中使用被继承类但继承基类的部分并未成为其接口的一部分。
继承和组合:
继承,定义一个类作为另一个类的公用派生类时,派生类应反映与基类的“是一种”关系。
组合,反映了“有一个”的关系,或则是包含,成员关系。
注意:
派生类可以恢复继承成员的访问级别,但不能使访问级别比基类中原来指定的更加严格或更加宽松。
eg:class Base {
public:
std::size_t size() const { return n;}
protected:
std::size_t n;
};
class Derived : private Base{……}
在这一继承层次中,size在Base中为public, 但在Derived中为private。为了使size在Derived中成为public,可以在Derived的public部分增加一个using声明。如下这样改变Derived的定义,可以使size成员你呢狗狗被用户访问,并使n能够被从Derived派生的类访问:
class Derived : private Base {
public:
using Base::size;
protected:
using Base::n;
};
struct 与class保留字定义的类具有不同的默认访问级别。同样默认继承访问级别根据使用哪个保留字定义派生类也不相同。
struct的默认继承访问级别为public,成员的默认访问级别也使public
class的默认继承访问级别为private,成员的默认访问级别也是private;
struct与class定义的类唯一的不同知识偶人的成员保护级别和默认的派生保护级别。没有其他区别。
c和c++结构体struct的区别:
C中的结构体和C++中结构体的不同之处:在C中的结构体只能自定义数据类型,结构体中不允许有函数,而C++中的结构体可以加入成员函数。
C++中的结构体和类的异同:
一、相同之处:结构体中可以包含函数;也可以定义public、private、protected数据成员;定义了结构体之后,可以用结构体名来创建对象。但C中的结构体不允许有函数;
也就是说在C++当中,结构体中可以有成员变量,可以有成员函数,可以从别的类继承,也可以被别的类继承,可以有虚函数。
二、不同之处:结构体定义中默认情况下的成员是public,而类定义中的默认情况下的成员是private的。类中的非static成员函数有this指针,(而struct中没有是错误的,一直被误导啊,经过测试struct的成员函数一样具有this指针),类的关键字class能作为template模板的关键字 即template<class T> class A{}; 而struct不可以。
实际上,C中的结构体只涉及到数据结构,而不涉及到算法,也就是说在C中数据结构和算法是分离的,而到C++中一类或者一个结构体可以包含函数(这个函数在C++我们通常中称为成员函数),C++中的结构体和类体现了数据结构和算法的结合。
- c++基类成员在派生类中的访问控制
- 基类成员在派生类中的访问属性
- C++基类成员在派生类中的访问属性
- C++_基类成员在派生类中的访问属性——总结
- c++模板类派生:派生类访问基类中的public 和protected成员的一些问题
- 继承与派生:派生类对基类成员的访问控制之公有继承
- 三十七、继承与派生:派生类对基类成员的访问控制之公有继承
- 派生类是否继承基类中的private成员,若继承为何不能在成员函数中访问?
- [c++]派生类的访问控制
- 基类成员在派生类中的调整
- 派生类访问基类成员权限
- 继承与派生:派生类对基类成员的访问控制之保护继承与私有继承
- 三十八、继承与派生:派生类对基类成员的访问控制之保护继承与私有继承
- 派生类成员的访问
- 派生类成员的访问
- 在继承中派生类成员的访问权限测试
- 派生类的访问控制
- 类成员的访问控制(C++)
- 什么是Mono for Android?
- 1354. Palindrome. Again Palindrome
- 1.驱动模块 Makefile 解析
- SphereWorld.cpp
- 虚拟语气的用法
- c++基类成员在派生类中的访问控制
- 一个过来的程序员(C/C++)感悟
- Eclipse常用快捷键
- MFC 控件跟随对话框变化比例变化 笔记
- Android与C#Socket之间的收发问题
- 今天看了毕老师的MyBufferedReader视频教程, 自己写一遍.
- HttpClient发起GET或者POST请求
- 【操作符】 - 逗号操作符
- 通过一个宏求某结构体中某元素的偏移