这几天复习了c++primer的第12章类的解说,尽管之前这一章也看了几遍。可是我终究认为书读百遍其义自现,如今我给出一些我学习的心得,欢迎大家一起探讨。

首先,类能够说是c++的灵魂,正由于c++中有类的出现,提高了代码的复用率,实现了真正的面向对象的编程,我们能够使用别人编写设计的类,仅仅要我们知道这个类的成员函数和成员数据,我们就能够使用这个类而不必去考虑这个类的实现方式。c++中就存在着非常多这种类,最经典的莫过于微软自己开发的windows界面库MFC了,这个类封装了windows API函数,我们在设计windows桌面应用程序时。仅仅需要调用对应的函数就能够设计出非常美丽的桌面应用程序,这是非常方便的。说到类,首先要讲到的是。类是怎么声明和定义的,类的定义和声明能够使用两个keyword实现,各自是class和struct,他们没什么太大的差别,最基本的差别是class中默认的訪问权限是私有的。而struct默认的訪问权限是公有的。类其中包括着一个隐含的成员是this指针,this指针指向自己,我们能够通过this->...来调用成员。可是一般不用这样做,可是也有必需要使用this指针的地方,比方我们成员函数返回的类型为类类型的引用,那么我们必需要使用this指针作为返回。类定义中首先出现的函数是类构造函数。即使用户未定义构造函数,编译器也会自己提供一个默认的构造函数,可是仅仅要用户自定义了类的构造函数。那么编译器就不会提供默认构造函数。

用户能够重载构造函数,当然自己也能够定义默认构造函数(没有形參的构造函数)。

关于类的訪问权限的问题。訪问权限分为公有和私有(后面还会介绍保护),类的使用者仅仅能訪问类的公有成员。私有成员函数和成员变量仅仅能在类的作用域中进行訪问,假设别的函数或者类想訪问类的私有成员,那么我们能够通过设定该函数或者类为此类的友元,这样就能訪问类的私有成员函数和变量了。

类其中也存在着static静态成员,而静态成员不同于其它的成员,由于静态成员不属于类的对象,而独属于这个类,我们不能在类中声明类本身类型的变量,可是我们能够将这种变量声明为静态变量。也能够声明为这种变量的指针或者引用。

随机推荐

  1. IP地址分类、私有地址、子网、子网掩码

    IP地址分类介绍 这里讨论IPv4,IP地址分成了A类.B类.C类.C类.E类,如下图所示: 解释: A类以0开头,网络地址有7位,主机地址有24位,举例:A类地址:0 10000000 000000 ...

  2. uva10766生成树计数

    此类题是给定一个无向图,求所有生成树的个数,生成树计数要用到Matrix-Tree定理(Kirchhoff矩阵-树定理) G的度数矩阵D[G]是一个n*n的矩阵,并且满足:当i≠j时,dij=0:当i ...

  3. pdflush进程介绍与优化【转】

    转载地址: http://blog.ops88.com/2012/07/12/74 一. /proc/sys/vm/dirty_background_ratio   该参数是在尝试一个write ba ...

  4. Linux下记录所有用户的登录和操作日志

    Linux下记录所有用户的登录和操作日志   一般我们可以用history命令来查看用户的操作记录,但是这个命令不能记录是哪个用户登录操作的,也不能记录详细的操作时间,且不完整:所以误操作而造成重要的 ...

  5. vue项目使用hbuilder打包后,真机测试白屏

    在命令行直接运行 npm run build后,生成的dist文件中,直接打开index.html文件 Tip: built files are meant to be served over an ...

  6. C#连接Oracle数据库查询数据

    C#连接Oracle数据库可以实现许多我们需要的功能,下面介绍的是C#连接Oracle数据库查询数据的方法,如果您对C#连接Oracle数据库方面感兴趣的话,不妨一看. using System; u ...

  7. Loadrunner 11检查点使用方法总结

    在使用Loadrunner 11进行性能测试中,有时需要对性能测试中的功能是否全部正确进行判断.这里就需要用到“检查点”,本文总结了常用三种协议下检查点的使用方法,希望阅读本文后的小伙伴们能够掌握其使 ...

  8. 职责链模式(Chain of Responsibility)

    一.责任链模式介绍 责任链模式:将能够处理同一类请求的对象连成一条链,使这些对象都有机会处理请求,所提交的请求沿着链传递.从而避免请求的 发送者和接受者之间的耦合关系.链上的对象逐个判断是否有能力处理 ...

  9. trigger 触发器(mysql)

    /* 触发器 tigger 引出触发器: 在进行数据库应用软件的开发的时候,我们有时候会碰到表中的某些数据改变,同事希望引起其他相关数据改变的需求,这时候就需要使用触发器. 运用触发器可以简化程序,增 ...

  10. flask框架中勾子函数的使用

    在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要处理,比如: 在请求开始时,建立数据库连接: 在请求开始时,根据需求进行权限校验: 在请求结束时,指定数据的交互格式: 为了让每个视图函数避免编 ...