zoukankan      html  css  js  c++  java
  • c++类的知识点(1)

    面向对象语言界有句话说的好:万物皆对象!

    我们人,猴子,猫,狗,汽车,木材,行星等等都可以看作对象.   对象有对象的属性及行为.比如猫的属性有发色,毛长,眼睛颜色等;而行为有捕鱼,吃鱼,行走,跑等等.这就是所谓的对象的两大要素.

    每个对象都有与之相似的对象集.比如黑猫,白猫,波斯猫,中国猫,日本猫等,它们本质都属于猫,只不过个体之间的属性及行为有所差异. c++中可以类class来表征一集合的共有特征.

    类就是相似对象的模子,按照这个模子就可以创造出万千同类对象,这就是类存在的意义.

    概念说完,开始说c++中的类的知识点!

    class Line

    {

        int width;

      public:

        void setwidth();

        int getwidth();
    };

    以上就是一个类,它有私有数据width,公共接口(公有成员函数)

    c++中用数据类型表示对象的属性,成员函数表示行为(方法).-----------------------------------数据封装(把属性和方法封装在一起)

    成员有访问控制:public,   protected,  private  三种;  这种设计就是为了更好的抽象对象的数据,通过接口操作对象,而不是直接操作对象的所有成员,保留了它内部数据构成的细节.------------------------数据抽象

    显然,对象不能直接操纵私有,和保护类型的成员,但是可以通过接口(公有对象)来操纵!----------------------------------------------接口就是用来建立类对象与外界的桥梁

    注意:成员函数可以访问任意对象内的成员(包括任意访问控制类型的成员).

    访问控制中的公共类型可以被对象直接使用;        protected类型可以被成员函数及友元访问及派生类访问;   private   只能被成员函数及友元访问.

    类的组成通常有以下几部分组成:

      多种数据属性

      构造函数

      析构函数

      复制构造函数

      对象行为的函数

      静态数据

      静态函数

      友元函数和类

    数据属性:    即表征数据的属性.

    构造函数:    对象创建时被系统自动调用,一般用于初始化对象属性.  在程序员没有创建它时,系统自动创建一个默认的构造函数.   Line::Line( [n1,n2,...] ){/* -------*/},,可以有多个,且可以有参数.

    析构函数:   它是一个特别的构造函数.对象消亡前系统调用,以完成一些必要的操作,如delete new出来的空间. 在没有时,系统也会自动创建一个默认的析构函数. Line::~Line(){/*--------------*/} 只能有一个,且没有参数

    复制构造函数:    专用于解决对象之间的赋值操作,由于对象非基本类型,不能简单的赋值.所以就有了这个特别的构造函数.     Line::Line(const Line &obj){/*--------------*/} 这也是一个构造函数,是在赋值时由系统

      自动调用的.没有返回值.(忘了讲,这个函数专用于在新对象被旧对象赋值,对象作为函数传参以及对象作为返回值时被调用),显然,本质上都是对象之间的赋值引起了这个函数的运转. 有一点需要注意,其参数也是  固定的,const Line &obj    所以这个函数也只有一个,如果没有设计的话,系统会有一个默认的复制构造函数以待使用.(可能有人疑惑,为啥必须是const Line &obj   呢?因为这里是对他的引用,并非赋值!我们用它  就是为了解决对象之间的赋值的,怎么能在它本身上面又出现对象赋值呢?  至于为啥有const   我想这是c++设计师的事了?).

    对象行为函数:  很好理解,就是有关于我们想在此对象上附加的操作或者方法

    静态数据:  供所有属于此类的对象公用的一个数据,并非某一个对象所有.如果把类的对象组成看作一个集合,那静态数据就相当于此集合的特征数据,描述集合的某一特征的.

    静态函数:  从略*******************************

    友元函数及友元类:从略***************************

     

      

  • 相关阅读:
    Everybody's business is nobody's business
    Randy Pausch 卡内基梅隆大学毕业典礼上的演讲
    如何写好求职信
    NHibernate中DateTime,int,bool空值的处理方法
    数据库分页存储过程(2)
    数据库分页存储过程(7)
    数据库分页存储过程(3)
    数据库分页存储过程(4)
    给webform中的后置cs文件添加版权
    数据库分页存储过程(5)
  • 原文地址:https://www.cnblogs.com/zww-kjj/p/12250246.html
Copyright © 2011-2022 走看看