zoukankan      html  css  js  c++  java
  • C++学习-类域、友元、运算符重载、对象的生存期,可见域,作用域(1)

    一、类的作用域(类作用域、类名作用域、对象作用域)

    1、在类中定义的成员变量和成员函数的作用域是整个类,可以在不同的类中使用相同的成员名

    2、不能从外部直接访问类的任何成员,public-对象名来调用,static成员函数-指定类名调用

    3、发生屏蔽现象,类成员可见域可能小于作用域,可用this指针或者类名::形式访问。

    二、类的作用域和可见域

    1、全局作用域:在函数和其他类的外部定义的类称为全局类,全局类具有全局作用域

    2、类作用域:嵌套类,public(AB的作用域可认为一样)和private (AB作用域认为不一样)

    3、块作用域:局部块,作用域块内

    4、类名也存在覆盖:覆盖原则,::访问外部类,外部类::嵌套类

    三、对象的生存期,可见域,作用域

    1、类名无生存期,只有可见域和作用域

    2、对象的生存期随着对象的创建而产生,随着对象的撤销而消失

    3、对象的生存期,可见域,作用域取决于对象的位置

    四、先定义后实例化

    1、类的定义要在对象的声明之前,因为编译器要知道需要为类分配多大的内存空间,仅仅对类声明是不够的。

    class B;

    B objectB;//错误

    class B

    {

    .......//B的定义

    };

    2、如果不创建B类的对象,而仅仅声明一个指向类型B的指针(或引用),是可行的。

    class B;//声明

    B* pb=NULL;//创建B类的对象,对

    B* pb=new B;//错

    class B

    {};

    五、对象内存释放与堆内存

    1、养成new/delete,malloc/free配对编程的习惯,集是释放已经无用的内存。

  • 相关阅读:
    抽签问题及优化
    P1020
    p1852ants
    1,三角形
    TG3
    如何看懂一篇题解
    Unsupported major.minor version 51.0 错误解决方案
    weblogic初学笔记2-在Linux上部署项目
    一块移动硬盘怎样兼容Mac和Windows系统,并且可以在time machine上使用
    org.hibernate.HibernateException: connnection proxy not usable after transaction completion
  • 原文地址:https://www.cnblogs.com/lyp1010/p/11731042.html
Copyright © 2011-2022 走看看