C++学习
文章平均质量分 94
大学要有梦想
求offer鸭
QQ:1257960165
展开
-
C++PrimerPlus知识点小结
C++融合了3种不同的编程方式:C语言代表的过程性语言,C++在C语言基础上添加的类代表的面向对象语言(oop),C++模板支持的泛型编程。C++11初始化方式 //大括号初始化,等号可以使用,也可以不使用 int emus{7}; int rheas={12}; //大括号内不包含任何东西,这种情况下变量将被初始化为零 int rocs={}; ...原创 2018-10-29 08:55:16 · 863 阅读 · 0 评论 -
C++PrimerPlus学习之探讨C++新标准
复习前面介绍过的C++11功能decltype关键字decltype将变量的类型声明为表达式指定的类型。示例double x;int n;decltype(x*n)q;//q same type as x*n,double.decltype(&x)pd;//pd same as &x,double *返回类型后置,能够使用decltype来指定函数...原创 2018-11-15 19:11:43 · 309 阅读 · 0 评论 -
C++PrimerPlus学习之C++中的代码重用
has-a关系包含对象成员的类易于理解及使用可包含多个基类,易于区分。构造函数初始化的是成员对象,而不是继承的对象,所以在初始化列表中使用的是成员名,而不是类名。当初始化列表包含多个项目时,这些项目被初始化的顺序为它们被声明的顺序,而不是它们在初始化列表中的顺序。一般来说,初始化顺序并不重要,但如果代码使用一个成员的值作为另一个成员的初始化表达式的一部分时,初始化顺序就非常重要了。...原创 2018-11-08 10:30:39 · 174 阅读 · 0 评论 -
C++PrimerPlus学习之string类和标准模板库
string类C++11新增的构造函数构造函数string(string &&str)类似于复制构造函数,导致新创建的string为str的副本。但与复制构造函数不同的是,它不保证将str视为const。这种构造函数被称为移动构造函数。在有些情况下,编译器可使用它而不是复制构造函数,以优化性能。构造函数string(initializer_list<char...原创 2018-11-13 15:09:50 · 199 阅读 · 0 评论 -
C++PrimerPlus学习之类和动态内存分配
复制构造函数如果没有定义,编译器将默认提供复制构造函数原型Class_name(const Class_name &)StringBad(const StringBad &)何时调用StringBad ditto(motto);StringBad metoo=motto;StringBad also=StringBad(motto);StringBad *pSt...原创 2018-11-02 17:01:34 · 174 阅读 · 0 评论 -
C++PrimerPlus学习之友元,异常和其他
友元友元类友元声明可以位于公有,私有或保护部分,其所在的位置无关紧要。注意类的声明的先后顺序class Base{public: friend class Point; void show()const{cout<<x<<' '&a原创 2018-11-10 00:37:09 · 162 阅读 · 0 评论 -
C++PrimerPlus学习之类继承
公有派生基类的公有成员及私有成员都会成为派生类的一部分基类的私有成员只能通过基类的公有和保护方法访问基类指针或引用可以在不显式类型转换的情况下指向派生类对象派生类的构造函数首先会创建基类对象,派生类的构造函数应通过成员初始化列表将基类信息传递给基类构造函数一个需要注意的地方Point::Point(int tk,const Base &b):Base(b){ k=tk;...原创 2018-11-06 19:20:12 · 252 阅读 · 0 评论 -
C++PrimerPlus学习之使用类
运算符重载一个例子//mytime0.h#ifndef MYTIME0_H_INCLUDED#define MYTIME0_H_INCLUDEDclass Time{private: int hours; int minutes;public: Time(){hours=minutes=0;} Time(int h,int m=0){hours...原创 2018-11-01 17:03:22 · 193 阅读 · 0 评论 -
C++PrimerPlus学习之内存模型和名称空间
头文件如果文件名包含在尖括号中,则C++编译器将在存储标准头文件的主机系统的文件系统的中查找。如果文件名包含在双引号中,则编译器将在当前目录下查找。使用条件编译防止多次包含头文件#ifndef XXX_H_#define XXX_H_...#endif存储持续性,作用域和链接性存储描述持续性作用域链接性如何声明存储位置自动自动代码块无...原创 2018-10-30 20:15:40 · 298 阅读 · 0 评论 -
C++PrimerPlus学习之函数模板
函数模板的声明template <typename T>//typename 也可以用class替换void Swap(T &a,T &b){ T tmp=a; a=b; b=tmp;}int main(){ int a=3,b=4; Swap(a,b); cout<&lt原创 2018-10-30 15:47:33 · 565 阅读 · 0 评论 -
C++PrimerPlus学习之对象和类
OOP的特性抽象封装和数据隐藏多态继承代码的可重用性类将抽象转换为用户定义类型的C++工具数据表示+操纵数据的方法一个例子 //stock00.h#ifndef STOCK00_H_INCLUDED#define STOCK00_H_INCLUDED#include<string>class Stock//常见写法,将首字母大写{pr...原创 2018-10-31 17:49:06 · 268 阅读 · 0 评论 -
C++PrimerPlus学习之输入,输出和文件
流和缓冲区C++程序把输入和输出看作字节流。输入时,程序从输入流中抽取字节;输出时,程序将字节插入到输出流中。流充当了程序和流源或流目标之间的桥梁。C++程序只是检查字节流,而不需要知道字节来自何方和去向何处。使用缓冲区可以更高效地处理输入和输出。处理输入时,缓冲区通常从磁盘读取大量信息,然后每次从缓冲区里读取一个字节。处理输出时,程序首先先填满缓冲区,然后将整块数据传输给硬盘,并清...原创 2018-11-14 20:27:51 · 284 阅读 · 0 评论