C++入门学习笔记
个人在 51CTO 上学习鲍松山老师的《非常好的 C++ 入门 视频课程》整理的笔记
Wonz
后端 -> 全栈 -> 后端
技术很菜,但一直在学习。
「人们会被自己热爱的事物改变」
展开
-
集合 | C++ 入门学习笔记目录
个人在 51CTO 上学习鲍松山老师的《非常好的 C++ 入门 视频课程》整理的笔记目录。C++ 学习笔记(0)C与C++的区别C++ 学习笔记(1)C++四大特性C++ 学习笔记(2)初识类与对象,类的定义与对象的和创建C++ 学习笔记(3)this指针C++ 学习笔记(4)构造函数和析构函数C++ 学习笔记(5)构造函数的3个作用C++ 学习笔记(6)引用C++ 学习笔记(...原创 2020-02-10 15:37:59 · 622 阅读 · 0 评论 -
C++ 学习笔记(30)标准模板库 STL 简介
列表模板#include<iostream>#include<list>#include<stack>using namespace std;class Student{};//列表模板void main(){ list<int>mylist; list<Student>youlist; for(int i...原创 2018-08-04 15:28:32 · 494 阅读 · 0 评论 -
C++ 学习笔记(29)自定义异常类与标准异常类
栈满#include<iostream>#include<string>using namespace std;template<typename Type>class Stack{public: Stack(int sz = STACK_SIZE){ capacity = sz > STACK_SIZE ? sz : STACK_...原创 2018-08-04 15:16:59 · 487 阅读 · 0 评论 -
C++ 学习笔记(28)异常机制的处理原理
三步骤:try——throw——catch#include<iostream>using namespace std;float Div(int a, int b){ if(b == 0){ throw b; //抛出异常,从右边返回,return不执行,直接跳到catch } return a/b; //从左边返回,返回类型为float}void ma...原创 2018-08-04 10:55:23 · 344 阅读 · 0 评论 -
C++ 学习笔记(27)文件与对象
文件在构造函数中打开,并创建对象;在析构函数中保存和关闭文件,并撤销对象。#include<iostream>#include<fstream>using namespace std;class Complex;ostream& operator<<(ostream &out, const Complex &c);cl...原创 2018-08-04 10:17:12 · 334 阅读 · 0 评论 -
C++ 学习笔记(26)C++ 文件读写
四步骤文本文件写方法一:#include<iostream.h>#include<fstream.h>#include<stdlib.h>void main(){ int ar[] = {12,23,34,45,56,67,78,89,90,100}; //1:定义文件对象 ofstream ofile; //outfile简写为o...原创 2018-08-03 16:29:59 · 810 阅读 · 0 评论 -
C++ 学习笔记(25)流类体系以及各式控制
平常所说的输入输出是人站在文件的角度看的,数据从文件流向其他位置:输出。数据从其他地方流向文件:输入。#include<iostream>using namespace std;//输出重定向//标准的输出,默认输出到显示器上void main(){ int a; cout<<"Hello IO"<<endl;}缓冲区streambu...原创 2018-08-03 15:34:23 · 288 阅读 · 0 评论 -
C++ 学习笔记(24)纯虚函数
纯虚函数#include<iostream>using namespace std;//抽象类:动物类class A{public: virtual void Eat()=0; virtual void Sleep()=0;};//具体类:人,具体类要完全实现父类所有的纯虚函数,这样才能定义对象,否则还是抽象类,不能实例化对象class P : public...原创 2018-08-03 09:59:16 · 334 阅读 · 0 评论 -
C++ 学习笔记(23)多态的实现原理分析
虚表里面只有父类的虚函数。#include<iostream>using namespace std;class Base{public: Base():x(0){ } ~Base(){ //这个改成虚函数,字节大小不会变,因为只有一个vfptr,只会增加4个字节 }public: virtual void show(){ cout<<"...原创 2018-08-02 22:21:25 · 289 阅读 · 2 评论 -
C++ 学习笔记(22)多态与虚函数的使用
复习赋值兼容规则三种情况#include<iostream>using namespace std;class Base{public: void show(){ cout<<"This is Base show()"<<endl; }};class D : public Base{public:};void main(){...原创 2018-08-01 09:53:06 · 562 阅读 · 0 评论 -
C++ 学习笔记(21)同名隐藏与赋值兼容规则
同名隐藏#include<iostream>using namespace std;class Base{public: Base():x(0){ } ~Base(){ }public: void show(){ cout<<"This is Base show()"<<endl; } void show(int){ c...原创 2018-07-31 20:44:50 · 360 阅读 · 0 评论 -
C++ 学习笔记(20)钻石继承与虚基类
防止二义性,所以加限定。#include<iostream>using namespace std;class B1{public: B1():n(0){ }public: int n;}; class B2{public: B2():n(0){ }public: int n;};class D : public B1,public B2{...原创 2018-07-31 16:49:33 · 356 阅读 · 0 评论 -
C++ 学习笔记(19)派生类的构造函数与析构函数调用顺序
创建子类对象,会先去创建父类对象。#include<iostream>using namespace std;class Base{public: Base(){ cout<<"Create Base!"<<endl; } ~Base(){ cout<<"Free Base!"<<endl; }pr原创 2018-07-31 16:24:44 · 514 阅读 · 0 评论 -
C++ 学习笔记(18)继承访问属性细说
继承是多态的基础。#include<iostream>using namespace std;class Base{private: int x;};class D : public Base{ //子类公有继承父类public: int y;};void main(){ cout<<sizeof(Base)<<endl; ...原创 2018-07-31 15:49:30 · 381 阅读 · 0 评论 -
C++ 学习笔记(17)new的三种形式详解
new operator //new操作符operator new //操作符new,只负责开辟空间placement new //定位new#include<iostream>using namespace std;/*new operator //new操作符operator new //操作符new,只负责开辟空间placement new //...原创 2018-07-31 11:55:30 · 1485 阅读 · 0 评论 -
C++ 学习笔记(16)动态内存开辟new_delete
malloc:1.自己计算大小。2.做强制转换。3.进行开辟成功与否的判断。4.用free释放 new:1.不需要进行强制转换。2.不需要判断开辟成功与否。3.new释放用delete。4.释放数组,前面要加[]。#include<iostream>using namespace std;#define SIZE 10void ma...原创 2018-07-29 11:58:13 · 343 阅读 · 0 评论 -
C++ 学习笔记(15)类模板
掌握信息:1.声明类模板的时候,要给出模板信息。template<typename Type>class ListNode{}2.类模板里面的所有函数,全都是模板函数。所以在外面实现的话,要加上模板信息。template<typename Type>List<Type>::List(){}3.要使用模板参数。bool Lis...原创 2018-07-28 16:47:48 · 332 阅读 · 0 评论 -
C++ 学习笔记(14)函数模板
函数模板#include<iostream>using namespace std;//函数模板template<typename Type> //Type是一种类型Type Max(Type a,Type b){ cout<<typeid(Type).name()<<endl; return a > b ? a : b;...原创 2018-07-28 15:49:19 · 325 阅读 · 0 评论 -
C++ 学习笔记(13)static方法和const方法
静态成员是共享的。#include<iostream>using namespace std;class Test{ friend void fun(Test &);public: Test(int d = 0):data(d){ count++; } ~Test(){ count--; }private: int data; static...原创 2018-07-28 14:52:02 · 323 阅读 · 0 评论 -
C++ 学习笔记(12)友元函数
友元函数。#include<iostream>using namespace std;class Test{ friend void Show(); //只在类中写出friendpublic: Test(int d = 0):data(d){ }public: //void Fun(Test * const this) //改写成这样 void Fun()...原创 2018-07-28 11:14:27 · 426 阅读 · 0 评论 -
C++ 学习笔记(11)运算符重载
运算符重载:使代码看上去更人性化。#include<iostream>using namespace std;//复数class Complex{public: Complex():m_real(0),m_imag(0){ } Complex(int real,int imag){ m_real = real; m_imag = imag; } ~Co...原创 2018-07-27 17:04:30 · 435 阅读 · 0 评论 -
C++ 学习笔记(10)深拷贝与浅拷贝
例子#include<iostream>using namespace std;class Test{public: Test(int d = 0):data(d){ cout<<"Create Test!"<<endl; } Test(const Test &t){ //cout&l...原创 2018-07-26 11:04:55 · 672 阅读 · 0 评论 -
C++ 学习笔记(9)函数的调用优化
深入理解四大函数:构造函数、拷贝构造函数、赋值函数、析构函数。测试1:#include<iostream>using namespace std;class Test{public: Test(int d = 0):data(d){ cout<<"Create Test Object:"<<this<<end...原创 2018-07-26 09:44:58 · 460 阅读 · 0 评论 -
C++ 学习笔记(8)赋值函数
使用引用,不需要执行拷贝构造函数,时间和效率上都有了提高。可以不加const,一般都加,表示常引用,保护参数。this代表当前地址,*this代表当前地址的元素。#include<iostream>using namespace std;class Test{public: //Test t; Test(int d = 0):data(d){ ...原创 2018-07-26 12:59:15 · 540 阅读 · 0 评论 -
C++ 学习笔记(7)拷贝构造函数
一些基础知识#include<iostream>using namespace std;class Test{public: //Test t; Test(int d = 0):data(d){ cout<<"Create Test Object:"<<this<<endl; } //Te...原创 2018-07-25 11:11:31 · 397 阅读 · 0 评论 -
C++ 学习笔记(6)引用
引用,又称为别名。#include<iostream>using namespace std;void swap(int *x,int *y){ //x和y会分配新的内存空间,有新的地址 int tmp = *x; *x = *y; *y = tmp;}void swap1(int &x,int &y){ //x的地址就是a的...原创 2018-07-25 10:27:30 · 299 阅读 · 0 评论 -
C++ 学习笔记(5)构造函数的3个作用
作用1.构造对象。2.初始化对象。3.类型转换。include<iostream>using namespace std;class Test{public: Test(int d = 0){ //构造函数名和类名一致 cout<<"Create Test Object:"<<this<<endl;...原创 2018-07-24 10:57:03 · 1379 阅读 · 0 评论 -
C++ 学习笔记(4)构造函数和析构函数
构造函数数据多为私有,初始值为随机值,要想初始化,要用公有函数进行初始化。更好的初始化方法:构造函数。要求:1.函数名要和类名一致。2.构造函数没有返回值,也不能写void。3.实例化对象之后,构造函数自动被调用,且只被调用一次(针对一个对象,有3个对象就调用3次,分别调用1次)。4.构造函数可以重载,即初始化可以不一样。5.构造函数可以在类中定义,也可以在类外定义...原创 2018-07-24 10:21:53 · 583 阅读 · 0 评论 -
C++ 学习笔记(3)this指针
存储CGoods c1,c2...cn;数据自己单独存储,但是方法可以公用,即函数只需存储一份,节省空间。方法共享,但是不知道是哪一个对象。 this指针即使对象名一样,用this指针依旧可以赋值。this指针代表当前对象的地址。this是一个常量,不能对它进行赋值。this = NULL;也是不允许的。class CGoods{public: void...原创 2018-07-23 15:22:46 · 471 阅读 · 0 评论 -
C++ 学习笔记(2)初识类与对象,类的定义与对象的和创建
一、初识类与对象实体->抽象类别:抽象出实体的本质(比如:储蓄人员能够开户,销户······),得到储蓄类。抽象类别->类:class CX{};类->对象:(ATM机)模拟现实世界的功能。 二、类的定义与对象的创建C++中,拿类定义变量,把这个变量称为对象,定义过程称为实例化。类里面有:public公有,protected保护,priva...原创 2018-07-23 14:22:31 · 609 阅读 · 0 评论 -
C++ 学习笔记(1)C++四大特性
1.抽象对具体事物的定义过程。 2.封装把数据和操作数据的方法捆绑在一起的过程。例如:把函数放进结构体中进行操作。struct Test{ int a; double b; char c; void SetData(int xa,double xb,char xc){ a = xa; b = xb; ...原创 2018-07-23 10:19:29 · 3944 阅读 · 0 评论 -
C++ 学习笔记(0)C与C++的区别
利用暑假的时间,正式开始学习C++,记录一下自己的学习笔记~网课地址:http://edu.51cto.com/course/4940.html#tab21.文件类型C:.cC++:.cpp 2.头文件与命名空间C:#include<stdio.h>C++:#include<iostream.h> //比较老的使用这个#in...原创 2018-07-23 10:04:40 · 864 阅读 · 0 评论