坚持c++,真正掌握c++(4)
这几天复习了c++primer的第12章类的解说,尽管之前这一章也看了几遍。可是我终究认为书读百遍其义自现,如今我给出一些我学习的心得,欢迎大家一起探讨。
首先,类能够说是c++的灵魂,正由于c++中有类的出现,提高了代码的复用率,实现了真正的面向对象的编程,我们能够使用别人编写设计的类,仅仅要我们知道这个类的成员函数和成员数据,我们就能够使用这个类而不必去考虑这个类的实现方式。c++中就存在着非常多这种类,最经典的莫过于微软自己开发的windows界面库MFC了,这个类封装了windows API函数,我们在设计windows桌面应用程序时。仅仅需要调用对应的函数就能够设计出非常美丽的桌面应用程序,这是非常方便的。说到类,首先要讲到的是。类是怎么声明和定义的,类的定义和声明能够使用两个keyword实现,各自是class和struct,他们没什么太大的差别,最基本的差别是class中默认的訪问权限是私有的。而struct默认的訪问权限是公有的。类其中包括着一个隐含的成员是this指针,this指针指向自己,我们能够通过this->...来调用成员。可是一般不用这样做,可是也有必需要使用this指针的地方,比方我们成员函数返回的类型为类类型的引用,那么我们必需要使用this指针作为返回。类定义中首先出现的函数是类构造函数。即使用户未定义构造函数,编译器也会自己提供一个默认的构造函数,可是仅仅要用户自定义了类的构造函数。那么编译器就不会提供默认构造函数。
用户能够重载构造函数,当然自己也能够定义默认构造函数(没有形參的构造函数)。
关于类的訪问权限的问题。訪问权限分为公有和私有(后面还会介绍保护),类的使用者仅仅能訪问类的公有成员。私有成员函数和成员变量仅仅能在类的作用域中进行訪问,假设别的函数或者类想訪问类的私有成员,那么我们能够通过设定该函数或者类为此类的友元,这样就能訪问类的私有成员函数和变量了。
类其中也存在着static静态成员,而静态成员不同于其它的成员,由于静态成员不属于类的对象,而独属于这个类,我们不能在类中声明类本身类型的变量,可是我们能够将这种变量声明为静态变量。也能够声明为这种变量的指针或者引用。
随机推荐
- 搭建selenium + Python环境的总结:
安装Python+Selenium 写博客是一个不错的选择,首先,是担心自己忘掉,其次,可以供大家做一个参考: 其实,这是自己第一次搭建Python环境(之前用了一周的Idle),还是比较容易的吧: ...
- JS/jQuery 遍历对象属性
Javascript For/In 循环: 循环遍历对象的属性 var person={fname:"John",lname:"Doe",age:25}; fo ...
- find命令中选项-path和-prune的使用
在Windows中可以在某些路径中查找文件,也可以设定不在某些路径中查找文件,下面用Linux中的find的命令结合其-path -prune参数来看看在Linux中怎么实现此功能.假如在当前目录下查 ...
- UVALive-3211 Now or later (2-SAT+二分)
题目大意:有n架飞机,每架飞机有两个可选择的着陆时间,并且每架飞机都必须要选一个时间着陆.为了安全考虑,要求两架飞机的最小着陆时间差最大,找出这个最大值. 题目分析:有“最小值的最大值”这样的字眼,用 ...
- nyoj——5字符串STL复习
Binary String Matching 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 Given two strings A and B, whose alp ...
- logback配置日志输出
<dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> & ...
- 无密码登陆的ssh和ssh-agent
原文地址:http://lxshopping.blog.51cto.com/4542643/1179864/ 一,不需要输密码的ssh 原理:首先服务器端把公钥传给Client端,Client端在验证 ...
- 小练习:vaild number
1.描述 给定字符串,若该字符串表示的是数字,则输出true,否则输出false 2.分析 题目一看感觉不难,做起来却很麻烦,首先是数字的各种表示要知道,然后就是对这些不同形式的数字进行筛选判断.该题 ...
- CentOS 6.5 升级内核到 3.10.28
本文适用于CentOS 6.4, CentOS 6.5,亲测可行,估计也适用于其他Linux发行版. 1. 准备工作 1.1 下载源码包 Linux内核版本有两种:稳定版和开发版 ,Linux内核版本 ...
- HDU 4704 Sum (隔板原理 + 费马小定理)
Sum Time Limit : 2000/1000ms (Java/Other) Memory Limit : 131072/131072K (Java/Other) Total Submiss ...