坚持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静态成员,而静态成员不同于其它的成员,由于静态成员不属于类的对象,而独属于这个类,我们不能在类中声明类本身类型的变量,可是我们能够将这种变量声明为静态变量。也能够声明为这种变量的指针或者引用。
随机推荐
- java7与java8的新特性
java7 新特性: 1. switch 里面的 case 条件可以使用字符串了. 2. 运用 List\tempList = new ArrayList<>(); 即泛型实例化类型自动判 ...
- VS的 X64下的汇编编译
参考博客 VS编译64位汇编时报错:error C4235: 使用了非标准扩展: 不支持在此结构上使用“_asm”关键字 在用VS2013编译内联汇编时,报如下错误: 错误 5 error ...
- Matlab 一些函数
max(A,[],dim):dim取1或2.dim取1时,该函数和max(A)完全相同:dim取2时,该函数返回一个列向量,其第i个元素是A矩阵的第i行上的最大值.
- HQL查询中取个别几个字段
数据表:
- windows使用pip安装selenium报错问题
UnicodeDecodeError: 'ascii' codec can't decode byte 0xb9 in position 7: ordinal not in range(128) 这是 ...
- Mutations
蛤蟆可以吃队友,也可以吃对手. 如果数组第一个字符串元素包含了第二个字符串元素的所有字符,函数返回true. 举例,["hello", "Hello"]应该返回 ...
- C#中Abstract和Virtua笔记,知识
在C#的学习中,容易混淆virtual方法和abstract方法的使用,现在来讨论一下二者的区别.二者都牵涉到在派生类中与override的配合使用. 一.Virtual方法(虚方法) virtual ...
- Prism 4 文档 ---第3章 管理组件间的依赖关系
基于Prism类库的应用程序可能是由多个松耦合的类型和服务组成的复杂应用程序,他们需要根据用户的动作发出内容和接收通知进行互动,由于他们是松耦合的,他们需要一种方式来互动和交流来传递业务功能的需求. ...
- java的简单入门,tomcat服务器
Tomcat是一款开源的处理动态非常牛逼的web服务器.是sun公司开发的,在丧尸危机之后被收购了. 安装Tomcat需要的支持安装包 JDK下载:http://www.oracle.com/tech ...
- poj3686
题解: KM算法 把每一个点拆成n个 然后改变编圈 代码: #include<cstdio> #include<cmath> #include<cstring> # ...