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++设计师的事了?).

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

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

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

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

 

 

 

  

 

原文链接: https://www.cnblogs.com/zww-kjj/p/12250246.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    c++类的知识点(1)

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/326557

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月1日 下午3:52
下一篇 2023年3月1日 下午3:52

相关推荐