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

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

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

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

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

随机推荐

  1. C++(二十六) — 构造函数、析构函数、对象数组、复制构造函数

    1.构造函数 (1)每个类都要定义它自己的构造函数和析构函数,是类的成员函数. 特点:名称与类名相同:没有返回值:一定是共有函数,可以直接访问类内所有成员函数:可以带默认形参,可以重载: class ...

  2. iOS Layout机制相关方法

    iOS Layout机制相关方法 - (CGSize)sizeThatFits:(CGSize)size - (void)sizeToFit ——————- - (void)layoutSubview ...

  3. ubuntu14.04 改变系统默认Python解释器

    今天刚安装了anaconda,摸索了一阵子,现做个相关记录. 虽然安装的时候,会通知你是否加入环境变量(加到.bashrc尾部),但是调用的解释器仍然是系统自带默认的Python2.7.6,我们在/r ...

  4. RabbitMQ其他(八)

    1 RabbitMQ消息队列的小伙伴: ProtoBuf(Google Protocol Buffer) 什么是ProtoBuf? 一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序 ...

  5. hdu 4770 13 杭州 现场 A - Lights Against Dudely 暴力 bfs 状态压缩DP 难度:1

    Description Harry: "But Hagrid. How am I going to pay for all of this? I haven't any money.&quo ...

  6. HDU 5793 A Boring Question (找规律 : 快速幂+乘法逆元)

    A Boring Question Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others ...

  7. C++面向对象高级编程(一)基础篇

    技术在于交流.沟通,转载请注明出处并保持作品的完整性. 概要: 知识点1 构造函数与析构函数 知识点2 参数与返回值 知识点3 const 知识点4 函数重载(要与重写区分开) 知识点5 友元 先以C ...

  8. New Concept English three(10)

    The great ship, Titanic, sailed for New York from Southampton on April 10th, 1912. She was carrying ...

  9. Linux:Aircrack-ng

    Aircrack-ng 工具主要有 airmon-ng 处理网卡工作模式 airodump-ng 抓包 aircrack-ng 破解 aireplay-ng 发包,干扰 另外还要用到以下 linux ...

  10. phpMyAdmin 尝试连接到 MySQL 服务器,但服务器拒绝连接

    phpMyAdmin 尝试连接到 MySQL 服务器,但服务器拒绝连接--解决方法     phpMyAdmin 尝试连接到 MySQL 服务器,但服务器拒绝连接.您应该检查配置文件中的主机.用户名和 ...