《C++ Primer》读书笔记-第二章 07 自定义数据结构
来源:互联网 发布:js插件怎么写 编辑:程序博客网 时间:2024/05/11 18:17
作者:马志峰
链接:https://zhuanlan.zhihu.com/p/23436243
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
链接:https://zhuanlan.zhihu.com/p/23436243
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
声明:
- 文中内容收集整理自《C++ Primer 中文版 (第5版)》,版权归原书所有。
- 原书有更加详细、精彩的释义,请大家购买正版书籍进行学习。
- 本文仅作学习交流使用,禁止任何形式的转载
这一节的内容相对来说比较少。
主要为后面学习类做准备。
数据结构
是一种把一组相关的数据组织起来然后使用它们的策略和方法,也可以说是一种抽象表达。
比如我们正在看的这本书《C++ primer》有ISBN号,作者,价格三个特征。
我们可以定义下面的数据结构:
struct Primer { std::string sBookNo; std::string sAuthor; double dRevenue; };
自定义数据结构以关键字struct开始,紧跟着类名和实体,最后的分号不能省略
还有一种自定义结构以class作为关键字,也就是常说的类。以后会经常遇到。
我的理解
自定义数据结构是自然事物的抽象表达,比如我们可以定义一个数据结构用来表示人
当我们关注人的姓名、身高、体重时,数据结构可以这样定义
struct Person { std::string sName; double dHeight; double dWeight; };
当我们关注人的姓名、年龄、身份证号时,数据结构可以这样定义
struct Person { std::string sName; unsigned iAge; std::string sID; };
有没有觉得程序员也是神一样的存在,可以在代码的世界里扮演造物者的角色
数据成员
- 数据成员定义了类的对象的具体内容
- 每个对象有自己的一份数据成员拷贝
- 修改一个对象的数据成员,不影响其他对象
头文件
头文件通常包含那些只能被定义一次的实体,如类、const变量和constexpr变量等
头文件存在多次包含的情况(直接和间接),编译器会把头文件中的内容拷贝到包含文件中,而我们又要确保头文件中的内容不被多次定义。
这需要用到头文件保护符
//SalesData.h#ifndef SALES_DATA_H #define SALES_DATA_H #include <string> struct Sales_data { }; #endif
预处理器在这里发挥了很大的作用。
#ifndef是“如果没有定义”的意思
SALES_DATA_H是“预处理变量”
- 如果没有定义SALES_DATA_H
- 定义SALES_DATA_H
- 执行下面的代码直到endif
如果SALES_DATA_H已经定义过,则后面的代码不会执行。
这样确保头文件被多次包含时,其中的内容不会被多次定义
#include也是预处理命令,当预处理器看到#include时就会用指定的头文件中的内容代替#include
小结
到这里第二章就学完了
相信再遇到指针和引用我们不会恐慌了
即便再加上const限定符
我们也应该能应付的来才是
多做一些练习吧
这一章值得这么做
如果你有困难
把书再看一遍
再看一遍…
0 0
- 《C++ Primer》读书笔记-第二章 07 自定义数据结构
- C Primer读书笔记第二章
- 《C++ Primer》读书笔记第二章-3-处理类型 And 自定义数据结构
- C++Primer读书笔记(第二章)
- C++primer 第二章
- C++primer 第二章
- c++primer第二章
- c++primer学习笔记-----2.6自定义数据结构
- C++ Primer 读书笔记 – 第二章
- 《C++ Primer》读书笔记-第二章 03 变量
- 大话数据结构 第二章 读书笔记
- c++primer第十二章读书笔记
- c++primer第二章习题
- C++primer 第二章习题
- C primer plus 第二章
- C Primer Plus 第二章
- C++primer第二章笔记
- C++primer第二章习题
- 欢迎使用CSDN-markdown编辑器
- Java多态性理解
- jQuery快速学习
- [链接]历年真题软件设计师下午考试题汇分析与技巧
- 《大数据工程师(开发)面试系列(2)》
- 《C++ Primer》读书笔记-第二章 07 自定义数据结构
- C#委托的内部构成
- JSON Web Token (JWT) - 八幅漫画理解使用JSON Web Token设计单点登录系统
- Linux编程yum源文件
- ollydbg学习之断点篇
- HTML5 css reset 和 Normalize.css
- 1.4 linux的LVM介绍与创建过程
- win10我的电脑怎么放在桌面
- 线性代数java包,Jama的常用方法