zoukankan      html  css  js  c++  java
  • c++可见性

    常见的三种visibility类型:private ,protected ,public

    c++类中的默认可见性类型是private,c++结构体的默认可见类型是public

    private的意思是,只有这个类才可以读写,使用private类型

    #include<iostream>
    
    class Entity
    {
    private:
        int X;
    public:
        Entity()
        {
            X=0;    
        }
    };//Entity类内的构造函数可以调用Entity内的私有类
    
    class Player : public Entity
    {
    public:
        Player()
        {
            X=0;//不可以,只有Entity本身或Entity的friends才可以访问他的私有类型
            //它的子类也不可以访问
        }
    };

    也不能在函数中直接访问Entity的私有类,比如:

    int main()
    {
        Entity e;
        e.X=1;
    }

    protected的开放程度要略高于private,但是略低于public,他表示这个类本身和它的子类,都可以访问和使用protected,但是除了这个类自己和它的子类,其他都不可以。

    #include<iostream>
    
    class Entity
    {
    protected:
        int X;
    public:
        Entity()
        {
            X=0;    
        }
    };//Entity类内的构造函数可以调用Entity内的保护类
    
    class Player : public Entity
    {
    public:
        Player()
        {
            X=0;//可以,它的子类也可以访问保护类型
        }
    };
    
    int main()
    {
        Entity e;
        e.X=1;//不可以,除了类自己和它的子类,其他时候都不能访问保护类型
        std::cin.get();
    }

    public就是都可以访问了,公有的。在接触代码的时候,可视化类型可以帮助我们清楚地看到,代码中的什么部分是我们有权限使用的(public),有哪些部分是我们不要轻易去动的(private,protected),如果我们在类中的变量或者函数被标上了私有类,那么我们就很清楚,这个标记为私有类的变量或函数我们不能在外面调用它。

  • 相关阅读:
    java測试网络连接是否成功并设置超时时间
    php BC高准确度函数库
    Snail—Hibernate各种异常
    js中()()问题
    Servlet 是否线程安全 看完便知
    Flask的flask-sqlalchemy
    SQLALchemy之介绍,基本使用
    SQLALchemy之创建表,删除表
    SQLALchemy之ORM操作
    我为什么从python转向go
  • 原文地址:https://www.cnblogs.com/wangtianning1223/p/12691361.html
Copyright © 2011-2022 走看看