public,protected,private

来源:互联网 发布:苏州经济数据 编辑:程序博客网 时间:2024/06/01 13:54

一、public,protected,private

(1)public:公有成员/继承.类外可以直接访问(对象可以访问类的公有成员)。

(2)protected:保护成员/继承

protected成员的特点:对其所在对象来说(水平访问时),它与private成员的性质相同,即对象不能不能访问;对于其派生类来说(垂直访问时),它与public成员性质相同,允许访问。

//main.cpp======================
//测试protected属性的使用
#include<iostream>
using namespace std;
//类的定义=======================
class A {
protected :
 int i;
};
class B:public A{
public:
 int fun();
};
//类的实现=================
int B::fun(){
    i=100;//对于其派生类来说(垂直访问时),它与public成员性质相同,允许访问
    return i;
}
//主函数========================
int main(){
 A a;
 //a.i=100;错,对其所在对象来说(水平访问时),它与private成员的性质相同,即对象不能不能访问
 B b;
 cout<<b.fun()<<endl;
 //b.i;错
 cout<<sizeof(b)<<endl;
}

(3)private:私有成员/继承。类外不可以直接访问(对象不可以访问类的公有成员),但类的成员函数可以访问。

二、public,protected,private在继承方式上的作用

1.继承:保持已有类的特性而构造新类的过程。目的:实现代码重用。
  派生:在已有类的基础上新增自己的特性而产生新类的过程。

2. class 派生类名:继承方式 基类名{
               成员声明;
};
3.不同继承方式的影响主要体现在:

(1)派生类成员对基类成员的访问控制.(2)派生类对象对基类成员的访问控制。
4.public继承:基类的public和protected成员的访问属性在派生类中保持不变,但基类的private成员不可访问。派生类的成员可以直接访问基类中的public和protected成员,但不能访问基类的private成员。通过派生类的对象只能访问基类的public对象。
  private继承:基类的public和protected成员都以private出现在派生类中,但基类的private成员不可访问。派生类的成员可以直接访问基类中的public和protected成员,但不能访问基类的private成员。通过派生类的对象不能访问基类任何成员。
  protected继承:基类的public和protected成员都以protected出现在派生类中,但基类的private成员不可访问。派生类的成员可以直接访问基类中的public和protected成员,但不能访问基类的private成员。通过派生类的对象不能访问基类任何成员。

原创粉丝点击