zoukankan      html  css  js  c++  java
  • C++ Qt 访问权限总结

    总结:C++的访问修饰符的作用是以类为单位,而不是以对象为单位。

     

    通俗的讲,同类的对象间可以“互相访问”对方的数据成员,只不过访问途径不是直接访问.

    步骤是:通过一个对象调用其public成员函数,此成员函数可以访问到自己的或者同类其他对象的public/private/protected数据成员和成员函数(类的所有对象共用),而且还需要指明是哪个对象的数据成员(调用函数的对象自己的成员不用指明,因为有this指针;其他对象的数据成员可以通过引用或指针间接指明)

     

     

    C++中public,protected,private访问小结

    1、private,public,protected方法的访问范围.(public继承下)

    private: 只能由该类中的函数、其友元函数访问,不能被任何其他访问,该类的对象也不能访问. 

    protected: 可以被该类中的函数、子类的函数、以及其友元函数访问,但不能被该类的对象访问 

    public: 可以被该类中的函数、子类的函数、其友元函数访问,也可以由该类的对象访问

    注:友元函数包括两种:设为友元的全局函数,设为友元类中的成员函数

     

    2、类的继承后方法属性变化: 

    使用private继承,父类的所有方法在子类中变为private; 

    使用protected继承,父类的protected和public方法在子类中变为protected,private方法不变; 

    使用public继承,父类中的方法属性不发生改变; 

     

      public: protected: private:
    public继承 public protected ---
    protected继承 protected protected ---
    private继承 private private ---

    protected继承和private继承能降低访问权限

     

    再次提到:可以提供访问行为的主语为“函数”。

    类体内的访问没有访问限制一说,即private函数可以访问public/protected/private成员函数或数据成员,同理,protected函数,public函数也可以任意访问该类体中定义的成员

    public继承下,基类中的public和protected成员继承为该子类的public和protected成员(成员函数或数据成员),然后访问仍然按类内的无限制访问

    Qt信号槽的访问限制

     

    1、关键字signals指出随后开始信号的声明,这里signals用的是复数形式而非单数,siganls没有public、private、protected等属性,这点不同于slots。另外,signals、slots关键字是QT自己定义的,不是C++中的关键字。

     

    2、槽也是普通的C++函数,可以一样被调用,他唯一的特点就是 他们可以被信号连接。因为槽就是普通的成员函数,它们也和普通的成员函数一样有访问权限,一个槽的访问权限决定了哪些信号可以和它相连接,而信号就没有访问权限的概念。

     

    一个public slots:区包含了任何信号都可以相连的槽。你生成了许多对象,它们互相并不知道,把它们的信号和槽连接起来,这样信息就可以正确地传递,并且就像一个铁路模型,把它打开然后让它跑起来。

     

    一个protected slots:区包含了之后这个类和它的子类的信号才能连接的槽。这就是说这些槽只是类的实现的一部分,而不是它和外界的接口。

     

    一个private slots:区包含了之后这个类本身的信号可以连接的槽。这就是说它和这个类是非常紧密的,甚至它的子类都没有获得连接权利这样的信任。

     

     
  • 相关阅读:
    shell脚本之for循环
    shell脚本小集锦
    Java构建指定大小文件
    IntelliJ+Maven+Spring+Tomcat项目搭建(MAC)
    Git下基本命令操作
    Mac下IntelliJ的Git、GitHub配置及使用
    Git下的.DS_Store文件
    Mac下GitHub以及GitHub Desktop使用实战
    idea快捷键
    汉字获取首字符
  • 原文地址:https://www.cnblogs.com/lvdongjie/p/3758177.html
Copyright © 2011-2022 走看看