`
emowuyi
  • 浏览: 1479911 次
文章分类
社区版块
存档分类
最新评论

《C++编程语言》学习笔记2

 
阅读更多

编程语言(C++)学习的指导思想:

Focus on programming techniques, not on language features.

2.1 C++设计思想
(1)能提供用户接口成员函数
(2)只有通过用户接口才能访问数据privite
(3)初始化、扫尾重构,虚构函数
(4)用户代码与实现代码隔离封装

2.2 数据抽象,类继承OOP的基本思想
(1) 作者首先通过“栈”的例子引出使用继承的好处:实现在基类中不定义成员变量,使用户与数据更好的隔离开来;在通过“形状shape类”的例子说明,使用继承的机制,可以通过派生类来定义不同的形状,方便用户根据实际需求来定义形状,即可继承基类的好方法,还能自己添加其他特性
(2) 用含有虚函数的类定义的对象,都有虚函数表,该表的地址位于对象空间的顶部;
(3) 数据抽象,貌似就是用户可以自己定义运算符的功能(比如让+号不在做加法)

C++程序,通常分为3个文件:类声明(XXX.h),类实现(XXX.CPP),使用类(main)。这种分成三个文件进行编译并不是C++的做法,而是模块化程序的设计方法。

一定要通过成员函数来完成对类中功能的监测。例如:设计一个stack类,要通过成员来监测栈是否溢出,而不是通过用户代码来判断栈是否溢出。

让某项数据操作(补足一个字符串)支持标注的数据操作,才是比较完美的。如:字符串支持“+”操作,str1 + str2。写一个成员函数也可以实现str1 + str2,但这种用函数来实现功能并不是好的做法。数据抽象:就是让用户能对自己定义的对象使用标准的操作(+、-)。通过这种“"数据抽象"的方式,可以让加号做的不在是加法!

为了将用户与数据更好的隔离开,类中(这里指基类)不要定义局部变量。不定义成员变量,成员函数怎么实现数据交互?解决方法:定义一个不含成员变量的基类,其他派生类中在定义成员变量!

每个含有虚函数的类都有它的虚函数表,这应该是编译器内部自己实现的。

花功夫去为基类寻找类间的共性是很有必要的。

范型是用模板(见笔记1)来实现的,用模板定义好一个类后,往这个类中填入不同类型的变量,都能适应。

CH3 Tour of Standand Library

1、cin遇到空格会默认结束字符串,getline()不会。cin无法获取空格字符
2、容器:vector, list, map
vector:顺序存储,占用连续存储空间,可随机访问其中元素
list:双向列表存储,只能顺序访问,但随机插入效率较高
map:成对存放关键字/值的list容器
3、迭代器(iterator)是容器和算法(操作)之间的一座桥梁;比如可以通过迭代器来对向量容器排序...迭代器就类似指针!

分享到:
评论

相关推荐

    【C++学习笔记】一份详细的学习笔记,让你轻松掌握C++编程!

    【C++学习笔记】一份详细的学习笔记,让你轻松掌握C++编程!

    C语言和C++Builder学习笔记.rar_C++笔记_c++学习笔记_c/C++_学习笔记_编程语言

    本人在学习C/C++语言过程中所作的笔记

    C++学习笔记

    C++ 程序设计特别版学习笔记(一) C++程序设计特别版学习笔记(二) c++程序设计特别版学习笔记(三) C++程序设计特别版学习笔记(四) ...初级 WINDOWS API C++语言版 编程(2) 初级 WINDOWS API C++语言版 编程(3)

    CUDA学习笔记,GPU编程,C++编程

    CUDA学习笔记

    C++机器学习笔记.md

    内容概要: 本文介绍了使用C++编程语言实现机器学习算法的方法,包括线性回归、决策树和支持向量机(SVM)。每个算法都配有代码示例,详细展示了实现过程和关键思想。此外,文章还提供了两个示例,分别展示了如何...

    2020最新_C++全套视频教程(首发)源码+笔记+课件

    里面有最详细的QT C++编程案例和代码,包括知识内容笔记和学习大纲,适合刚接触C++和从C语言跳转到C++学习的小伙伴,理论结合实践,加强学习;从代码中领悟知识点。

    Vulkan编程指南学习笔记

    Vulkan编程指南学习笔记

    递归编程学习笔记

    简要介绍如何学习C++的学习笔记,递归 学习,除了有一个好的脑子外,还{要多记笔记的,最好整理成“书”},总结一些自己学习过程中遇到的困难,同时也要用于分享,甘做小石子便他人。 本“书”记录本人学习C++语言...

    极品C/C++学习笔记(简单明了)--博士生导师讲授

    这是C++学习笔记,非常的全(对了,我先传个上,有机会再传下,下我还没有找到,找到的话,一定上传),而且非常典型。是硕士生专用笔记。 学习计算机的人,都知道,C/C++可以称得上是最“正宗”的语言。只要把...

    linux 编程环境学习笔记,含 linux 基本命令,linux 操作系统,linux 下 C++ 编程等.zip

    软件开发设计:应用软件开发、系统软件开发、移动应用开发、网站开发C++、Java、python、web、C#等语言的项目开发与学习资料 硬件与设备:单片机、EDA、proteus、RTOS、包括计算机硬件、服务器、网络设备、存储设备...

    c++语言程序设计(郑莉).xmind

    该xmind笔记是我在2020年准备东南大学复试期间写下的,内容是我在反复学习《C++语言程序设计(郑莉)》书籍,以及哔哩哔哩上的197集清华大学公开课的基础上,总结而成的,内容可说是非常详细了,最后一遍的时候,我...

    Linux系统设计-linux 编程环境学习笔记,含 linux 基本命令,linux 操作系统,linux 下 C++ 编程等

    Linux系统在科学计算、数据分析和机器学习等领域也有广泛应用。许多知名的科学计算软件都在Linux上开发和运行,Linux系统在各个领域都有广泛的应用,其强大的功能和灵活性使得它成为许多产品和服务的基础架构。

    Linux系统编程学习笔记

    Linux系统编程是指在Linux操作系统上进行程序开发的一种形式。它涵盖了多个方面,包括文件操作、进程管理、内存管理、网络编程等。...Linux 系统编程通常需要直接调用系统调用,使用 C 或 C++ 等低级编程语言进行开发。

    C++ Polymorphism 笔记 1

    这是我在学习C++编程语言过程中的记录和心得分享。我希望这些笔记能够帮助那些刚开始接触C++的新手们理解基本概念、语法规则以及编程技巧。 在这里,您会找到从基础语法到高级特性的各种主题,包括但不限于变量声明...

    C++学习笔记.docx

    本文档通过通俗易懂的语言来讲解 C++ 编程语言。 C++ 是一种中级语言,它是由 Bjarne Stroustrup 于 1979 年在贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,是一种面向对象的程序设计语言。C++ 可运行...

    C++编程的核心.md

    是笔者学习C++所积累下的笔记,希望对大家学习有所帮助,c++编程语言升级到目前最新的C++20,已经变得非常的庞大复杂了。但是核心内容从C++98基本就固定下来了,从C++11到20最大的变化还是在标准库方面。这里是一份...

    C与C++程序设计学习与实验系统 2011.2

    另外 “编程日记” 功能可以让你记录你的 C 语言学习历程, “资料管理” 功能让你大量的下载资料不再难找 安装注意事项:为了保证软件的正常运行,请不要安装在中文文件夹中,采用默认安装路径即可。

    Java学习笔记

    Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向...

    C/C++程序设计学习与实验系统 V2008.13.part1

    原名《Turbo C/C++ for Windows 集成实验与学习环境》,现已更名为《C/C++程序设计学习与实验系统》,现在已...另外 “编程日记” 功能可以让你记录你的 C 语言学习历程, “资料管理” 功能让你大量的下载资料不再难找

Global site tag (gtag.js) - Google Analytics