#include<iostream>
#include<string>
using namespace std;
class parent{
protected:
int m_a;
int m_b;
public:
int m_c;
void set(int a,int b,int c){
m_a = a;
m_b = b;
m_c = c;
}
};
class child_A:public parent{
public:
void print(){
cout << "m_a=" << m_a << endl;
cout << "m_b=" << m_b << endl;
cout << "m_c=" << m_c << endl;
}
};
class child_B:protected parent{
public:
void print(){
cout << "m_a=" << m_a << endl;
cout << "m_b=" << m_b << endl;
cout << "m_c=" << m_c << endl;
, 顶端
} };
class child_C:private parent{
public:
void print(){
cout << "m_a=" << m_a << endl;
cout << "m_b=" << m_b << endl;
cout << "m_c=" << m_c << endl;
} };
int main(){
child_A a;//public继承
child_B b;//protected 继承
child_C c;//private继承
a.m_c = ;//
//b.m_c = 100;//
//c.m_c = 100;
return ;
a.print();
b.print();
c.print();
cout << endl;
a.set(,,);
b.set(,,);
c.set(,,);
}
//结果

class.cpp:10:7: error: ‘void parent::set(int, int, int)’ is inaccessible
void set(int a,int b,int c){
^
class.cpp:54:13: error: within this context
b.set(2,2,2);
^
class.cpp:54:13: error: ‘parent’ is not an accessible base of ‘child_B’
class.cpp:10:7: error: ‘void parent::set(int, int, int)’ is inaccessible
void set(int a,int b,int c){
^
class.cpp:55:13: error: within this context
c.set(3,3,3);
^
class.cpp:55:13: error: ‘parent’ is not an accessible base of ‘child_C’

public、potected 、private继承下的子类对父类成员的访问情况的更多相关文章

  1. c++ public protected private 继承

    1:访问控制 1.1 public 这类型成员可以被类本身函数访问,也可以被外部创建的类对象调用.子类对象与子类内部可以访问 1.2 protected类型成员,只能被类本身函数访问.外部创建的类对象 ...

  2. 关于protected在子类创建父类对象无法访问父类protected方法或成员

    子类(父类的外部包)中访问父类的protetcted属性或者方法,是不可以通过创建父类对象调用的.注意:此处不讨论同包下的父类子类,因为同包下所有类都可访问protected属性或者方法. 请参见Ja ...

  3. c++子类和父类成员函数重名

    子类和父类返回值参数相同,函数名相同,有virtual关键字,则由对象的类型决定调用哪个函数. 子类和父类只要函数名相同,没有virtual关键字,则子类的对象没有办法调用到父类的同名函数,父类的同名 ...

  4. 7,C++ public, protected, private 继承的区别

    在某处看到一张图,简单明了的说明了三者的关系,很是佩服,遂记录下来. //公有继承 对象访问 成员访问 public --> public Y Y protected --> protec ...

  5. 访问权限PPP(public、private、protected、default)之成员变量、成员变量权限解析

    首先,我们需要清楚一下方法是由哪些部分构成的: [权限修饰符列表][别的修饰符列表] 返回值类型 方法名(参数列表){   方法体:} 然后我们需要知道成员变量和成员方法访问有几种情况:1.当前包同一 ...

  6. c/c++ 继承与多态 子类隐藏父类的同名非虚函数

    问题1:若类A里有公有成员方法int fcn(),类B公有继承类A,并类B里有公有成员方法int fcn(int),可以在用户代码里,用类B的对象调用类A的int fcn()吗?? 不可以,编译出错, ...

  7. python 子类调用父类成员的方法

    1.直接写类名调用: parent_class.parent_attribute(self) class Animal(): def __init__(self, name): self.name = ...

  8. c++继承构造子类调用父类构造函数的问题及关于容器指针的问题及当容器里储存指针时,记得要手动释放

    看下面的一个问题: class Person { private: string name; public: Person(const string& s=""){ nam ...

  9. C++中public,protected,private派生类继承问题和访问权限问题

    C++中public,protected,private派生类继承问题和访问权限问题 当一个子类从父类继承时,父类的所有成员成为子类的成员,此时对父类成员的访问状态由继承时使用的继承限定符决定. 1. ...

随机推荐

  1. @vue/cli 4.0+express 前后端分离实践

    之前总结过一篇vue-cli 2.x+express+json-server实现前后端分离的帖子,@vue/cli3.0及4.0搭建的项目与vue-cli2.x的项目结构有很大的不同.这里对@vue/ ...

  2. Adaboost原理及相关推导

    提升思想 一个概念如果存在一个多项式的学习算法能够学习它,并且正确率很高,那么,这个概率是强可学习的.一个概念如果存在一个多项式的学习算法能够学习它,并且学习的正确率仅比随机猜测略好,那么,这个概念是 ...

  3. 关于php中数据提交到当前页面action的问题

    关于php中数据提交到当前页面action的问题 2011-06-21 17:45杨超★杰伦 | 分类:PHP | 浏览695次 php中数据提交到当前页面,有人action=“<?php ec ...

  4. Deno会在短期内取代Node吗?

    转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 原文出处:https://blog.bitsrc.io/what-is-deno-and-will-it-r ...

  5. 每次找Internet选项感到抓狂?一键打开!

    WIN+R运行,输入inetcpl.cpl,就可以打开了!

  6. Redis设计原理简介

    学完MySQL InnoDB之后,又开始学习和研究Redis. 首先介绍下书:<Redis设计与实现>第二版 黄健宏著,机械工业出版社,388页,基于redis3.0版本.版本有点低,这个 ...

  7. OPCUA+MQTT构建物联网通用框架

    写在前面: 为了应对标准化和跨平台的趋势,更好的推广OPC,OPC基金会在OPCDA成功应用的基础上推出了一个新的OPC标准——OPC UA,OPCUA不再基于分布式组件对象模型(DCOM),而是以面 ...

  8. 获取MP4媒体文件时长

    由于之前上传MP4文件没有保存视频时长,现在有需要,所以只好写代码读取时长.找了几个发现是 c/c++ 实现,或者是借助 FFmpeg 实现. 一个偶然在 GitHub 上面发现一个 c 文件,由于获 ...

  9. iOS开发添加新手引导

    往往项目中经常出现此类需求 用户通过点击引导按钮可响应页面附带按钮的点击事件. // // gzhGuideView.h // GuideView // // Created by 郭志贺 on 20 ...

  10. python 操作txt 生成新的文本数据

    name: Jack ; salary: 12000 name :Mike ; salary: 12300 name: Luk ; salary: 10030 name :Tim ; salary: ...