zoukankan      html  css  js  c++  java
  • 私有继承、保护继承、公共继承之间的区别(代码形式)

      1 // Inheritance.cpp : 定义控制台应用程序的入口点。
      2 //
      3 
      4 #include "stdafx.h"
      5 #include <iostream>
      6 
      7 using namespace std;
      8 
      9 class Parent
     10 {
     11 public:
     12     Parent(int var = 1)
     13     {
     14         pub = var;
     15         ptd = var;
     16         prt = var;
     17     }
     18 public:
     19     int pub;
     20 protected:
     21     int ptd;
     22 private:
     23     int prt;
     24 };
     25 class child1:public Parent
     26 {
     27 public:
     28     int getPub()
     29     {
     30         return pub;
     31     }
     32     int getPtd()
     33     {
     34         return ptd;
     35     }
     36     /* //错误。不管什么继承,子类不能访问父类的private成员变量,但可以访问protected和public成员变量。
     37     int getPrt()
     38     {
     39         return prt;
     40     }
     41     */
     42 };
     43 class child2:protected Parent
     44 {
     45 public:
     46     int getPub()
     47     {
     48         return pub;
     49     }
     50     int getPtd()
     51     {
     52         return ptd;
     53     }
     54     /* //错误。不管什么继承,子类不能访问父类的private成员变量,但可以访问protected和public成员变量。
     55     int getPrt()
     56     {
     57         return prt;
     58     }
     59     */
     60 };
     61 class child3:private Parent
     62 {
     63 public:
     64     int getPub()
     65     {
     66         return pub;
     67     }
     68     int getPtd()
     69     {
     70         return ptd;
     71     }
     72     /* //错误。不管什么继承,子类不能访问父类的private成员变量,但可以访问protected和public成员变量。
     73     int getPrt()
     74     {
     75         return prt;
     76     }
     77     */
     78 };
     79 
     80 int _tmain(int argc, _TCHAR* argv[])
     81 {
     82 
     83     child1 ch1;
     84     child2 ch2;
     85     child3 ch3;
     86     int var = 0;
     87     ch1.pub = var;
     88     //ch1.ptd = var; //错误。父类的保护成员变量、私有成员不能够被
     89     //var = ch1.ptd; //以任何形式继承的子类的任何对象访问和修改
     90     var = ch1.getPtd();
     91 
     92     //var = ch2.pub; //错误。保护继承将父类的中的public和protected成员都变成子类protected类型的成员变量,而一个类的对象是无法访问
     93     //ch2.pub = var; //错误。该类的protected和private成员变量的,所以一个保护继承子类的对象是无法访问和修改父类中public的成员变量的。
     94     var = ch2.getPtd();
     95 
     96     //ch3.Pub() = var;//错误。私有继承将父类中的成员变量全部变成子类中private类型的,此时子类对象当然不能修改和访问这些私有成员变量。
     97     var = ch3.getPtd();
     98 
     99     return 0;
    100 }
  • 相关阅读:
    随笔练习
    获得屏幕相关的辅助类
    C# 下sqlite简单使用
    XP系统下 VS2010 选中行崩溃
    Custome Buble Data Point
    RIA
    Chart Style
    d3js
    TreeView
    [Java入门笔记] Java语言简介
  • 原文地址:https://www.cnblogs.com/johnnyflute/p/3672675.html
Copyright © 2011-2022 走看看