学习C++ Primer 的个人理解(七)

类,后面还有两章是介绍有关于类的内容的。这一张依然只是个概括。但也已经将大致用法介绍完了。

重点如下:

  1.成员函数的声明,必须在类的内部。

  2.引用const成员函数

    我们知道成员函数中有一个名为this的隐式参数,相当于调用它的那个对象。

    默认情况下,this是顶层const的。也就意味着,我们不能把this绑定到一个常量对象上。

    还记得第二章关于const的细节问题么?

    this是顶层const的,意味着this本身不能被改变。

    而如果对象是一个常量对象,那我就不能把this绑定到对象上。

    this是一个隐式参数,我们不能直接显式的生命this为底层const。

    所以c++提供了一个方法

    把const放在成员函数的参数列表之后,表示this是一个指向常量的指针。

    这样的函数被称之为, 常量成员函数

  3.类允许其他类访问非公有成员,方法是另其他类或函数成为它的友元。

      友元的声明仅仅意味着指定了访问权限,而不是一个声明。

  

  4.使用初始值列表和传统构造的区别类似于:

    string foo = "hello world";

    string bar;

    bar = "hello world";

  

时间: 2024-08-25 21:12:48

学习C++ Primer 的个人理解(七)的相关文章

学习C++ Primer 的个人理解(九)

这一章介绍顺序容器,在之前的第三章中,了解到的vector就属于顺序容器的一种. 一个容器就是一些特定类型对象的集合. 除了vector,还有哪些顺序容器? vector: 大小可变,随机访问的速度很快,但是在尾部之外的部分插入或删除元素可能会很慢. deque : 随机访问的速度很快,在头和尾插入或删除的速度都很快. list: 双向链表,只支持双向顺序访问,在任何位置插入或删除操作都很快(链表的特性) forward_list: 单向链表,只支持单向的随机访问.在任何位置插入或删除都很快 a

学习C++ Primer 的个人理解(二)

到了第二章,其实才算是真正的开始.也就是本书的第一部分C++基础. 第一章可以说就是第一部分的一个简单的梗概. 从第二章开始,对C++的学习步入正轨,从最基础的开始学起,也就是 变量. 而说到变量就不得不说类型. 第二章讨论的主要就是如下几点: 1.什么是基本类型,什么是复合类型? 2.什么是变量,什么是常量? 3.什么是类型别名 4.定义数据结构(struct) 我认为本章讨论常量的部分,对后面的学习影响很大,如果没有理解清楚const的复合类型的一些细节问题,会对后面函数和类的部分的学习造成

学习C++ Primer 的个人理解(三)

第三章,主要内容是字符串和数组.感觉作者的意图是希望读者可以早一点可以写出简单的小程序,并且可以早点接触迭代器这种思想. 在我看来,这种内容的难度并不大. 对于编程来说,最重要的应该是思想,类似vector的各种操作,读者仅仅只需要知道vector可以做这些操作,真正用到的时候,能够想起来,再去查就好了. 在看<UNIX环境高级编程>的时候,各种系统调用,不可能每一个都记得熟,所以我认为这种只需要知道“可以这么做“就行了,用到的时候再查,久而久之自然就熟悉了. 然而关键的是为什么,比如为什么要

学习C++ Primer 的个人理解(一)

<C++ Primer>这本书可以说是公认的学习C++最好的书,但我觉得不是特别适合作为教材,书中内容的顺序让人有些蛋疼.我个人认为初学此书是不能跳着看的.如果急于上手的话,我更推荐<C++程序设计>. 首先是第一章,第一章可以说是本书第一部分的一个简略的概括.对于有其他编程语言经验的读者来说,看完这章基本可以看出C++的基本语法与其他语言的差异.对于零基础的读者,可以跟着书中内容写一些小程序了. 本主要介绍了以下几点: 1.一个最简单的C++程序是什么样的. 2.初步了解输入流和

学习C++ Primer 的个人理解(十)

标准库没有给每个容器都定义成员函数来实现 查找,替换等操作.而是定义了一组泛型算法,他们可以用于不同类型的元素或多种容器类型. 迭代器令算法不依赖与容器 算法永远不会执行容器的操作 算法本身不会执行容器的操作,他只会运行于迭代器之上. 算法永远不会改变底层容器的大小,有可能改变元素的值,也可能在容器内移动元素,但永远不会直接添加或删除元素. 只读算法 类似find就是这样一种算法,只会读取其输入范围内的元素,永远不会改变元素. accumulate也是只读算法. int sum = accumu

学习C++ Primer 的个人理解(六)

第四章和第五章没什么特别的.基本上就是书本上的字面意思,也没什么需要注意的细节.直接记录第六章. 本章介绍了函数,其实也没什么特别的.但有几个重点 1.形参的类型决定了形参和实参的交互方式.形参是引用,则它将绑定到实参上. 2.实参的值拷贝给形参时,形参和实参是两个相互独立的对象. 当初始化一个非引用类型变量时,初始值被拷贝给变量.此时对变量的改动不会影响初始值. 3.对于指针形参,函数接收一个指针,实际上跟非引用类似,拷贝的是指针的值,两个指针是不同的指针 C++中,建议用引用类型的形参代替指

学习C++ Primer 的个人理解(十一)

关联容器 就像是个字典, 其元素是 键 - 值 对. 关键字起到索引作用. 有序: map:关联数组:保存 健-值 对 set : 关键字既是值. multimap : 关键字可重复出现的map multiset   : 关键字可重复出现的set 无序: unordered_ 前四个 使用map map<sring ,size_t> word_count; 使用set set<string> exclude pair类型 一个pair类型保存两个数据成员. 创建一个pair时,我们

学习C++ Primer 的个人理解(十二)

动态内存与智能指针 在C++中, 动态内存用 new来分配空间并返回一个指向该对象的指针 用delete来销毁. 由于手动的对动态内存进行操作容易出现问题.所以新的标准库提供了两种智能指针. 智能指针的行为类似于常规指针.区别在于他负责自动释放所指对象. shared_ptr : 允许多个指针指向同一个对象. unique_ptr :独占所指向的对象 weak_ptr   :是一种弱引用,指向shared_ptr 所管理的对象 shared_ptr 类 类似vector ,shared_ptr

#HTTP协议学习# (十二)理解转发与重定向

本文转自:http://blog.csdn.net/meiyalei/article/details/2129120  生动清晰 解释一 转发是服务器行为,重定向是客户端行为.为什么这样说呢,这就要看两个动作的工作流程: 转发过程:客户浏览器发送http请求---->web服务器接受此请求-->调用内部的一个方法在容器内部完成请求处理和转发动作---->将目标资源发送给客户:在这里,转发的路径必须是同一个web容器下的url,其不能转向到其他的web路径上去,中间传递的是自己的容器内的r