C++11学习笔记3
C++11学习笔记3
右值引用分类在古老的标准里,C++中的变量分为左值(lvalue)与右值(rvalue)这两种,左值就是能够用&获得地址的值,可以对他进行修改,右值就是不能用&获得地址的值,通常只是临时变量,不能进行修改。而在C++11中,变量不再仅仅分为左值与右值了,他引入了另一种值叫将亡值(expire value,xvalue)。从此,变量类型分为了三种:lvalue :left valu
日期 2023-06-12 10:48:40C++面向对象程序设计(谭浩强)第三章第二~四节 学习笔记
3.2 利用析构函数进行清理工作析构函数是与构造函数作用相反的函数。当对象的生命周期结束时,会自动执行析构函数。说明:(1)如果在一个函数中定义了一个对象,当这个函数被调用结束时,对象应该释放,在对象释放前自动执行析构函数。(2)静态(static)局部对象在函数调用结束时对象并不释放,因此也不调用析构函数,只在main函数结束或者调用exit函数结束程序时,才调用static局部对象的析构函数。
日期 2023-06-12 10:48:40C++面向对象程序设计(谭浩强)第三章第10~11节学习笔记
3.10 友元3.10.1友元函数如果在本类以外的其他地方定义了一个函数(这个函数可以说是不属于任何类的非成员函数,也可以是其他类的成员函数),在类体中用friend对其进行声明,此函数就称为本类的友元函数。1.将普通函数声明为友元函数#include<iostream> using namespace std; class Time { public: Time(int, int,
日期 2023-06-12 10:48:40c++学习笔记详解编程语言
friend const Point operator-(const Point p1,const Point p2);//使用友元函数重载减号运算符 原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/18518.html c
日期 2023-06-12 10:48:40传智播客c/c++公开课学习笔记--邮箱账户的破解与邮箱安全防控
h1 一、SMTP协议 /h1 p SMTP(SimpleMail Transfer Protocol)即简单邮件传输协议。SMTP协议属于TCP/IP协议簇,通过SMTP协议所指定的服务器,就可以把E-mail寄到收信人的服务器上。SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转发出的电子邮件。 /p p SMTP使用TCP 一、
日期 2023-06-12 10:48:40C++学习笔记29,引用变量(1)
引用变量在创建的时候就必须初始化。无法创建一个未被初始化的引用。 #include <iostream> using namespace std; int main() { int x=10; int y=20; int &r1; } 编译结果: 假设引用未被初始化。编译将报错。 改动引用: 引用总是指向初始化的那个变量,也就是说,引用一
日期 2023-06-12 10:48:40C++学习笔记10-面向对象
1. 面向对象的程序设计是基于三个基本概念:数据抽象、继承和动态绑定。 在C++ 在,凭借一流的数据抽象,随着一类从一个类派生还继承:派生类的成员继承基类。决定是使用基类中定义的函数还是派生类中定义的函数。在C++ 中,多态性仅用于通过继承而相关联的类型的引用或指针。 2. 继承 通过继承我们能够定义这种类,它们对类型之间的关系建模,共享公共的东西,只特化本质上不
日期 2023-06-12 10:48:40C++ Primer 学习笔记_40_STL实践与分析(14)--概要、先来看看算法【上】
STL实践与分析--概述、初窥算法【上】 标准库容器定义的操作很少。并没有给容器加入大量的功能函数。而是选择提供一组算法,这些算法大都不依赖特定的容器类型,是“泛型”的。可作用在不同类型的容器和不同类型的元素上! 所谓泛型算法:一是由于它们实现共同的操作,所以称之为“算法”;而“泛型”指的是它们可以操作在多种容器类型上——不但可作用于vect
日期 2023-06-12 10:48:40C++primer学习笔记(一)——Chapter 3
3.1 Namespace using Declarations 1、因为C++里有名字空间的定义,例如我们使用cin的时候必须写成std::cin,如果就用一次还是可以接受的,但是如果一直都这样,那就很麻烦了。所以C++使用了一个姓的关键字using。 (1)第一种用法: 例如:using namespace std; 这样子的话就可以使用std名字空间下面所有的方法而不用加std::。 (2
日期 2023-06-12 10:48:40C++Primer学习笔记2-数据结构(下)
目录 字符串操作与 auto 修饰符vector迭代器数组迭代器与引用其余字符串杂项 字符串操作与 auto 修饰符 #include<bits/stdc++.h
日期 2023-06-12 10:48:40C/C++学习笔记 dlib中的base64编码源码分析
一、头文件解析 iostream标准输入输出流 sstream 字符串输入输出流 头文件climits定义了符号常量来表示类型的限制,编译器厂商提供了climits文件,该文件支持了其编译器中的值。例如,在使用16位int的老系统中,climits
日期 2023-06-12 10:48:40C/C++学习笔记 各种字符转换记录
一、std::string 和 std::wstring 互转 1、直接声明std::wstring std::wstring uriImage{L"D:\\Project\\screen.jpg"}; Uri uri{ uriImage }; 2、wstring_convert 由于C++17之后取
日期 2023-06-12 10:48:40C/C++学习笔记十二 Input and Output (I/O)(6)
一、随机文件 I/O 1、文件指针 每个文件流类都包含一个文件指针,用于跟踪文件中的当前读/写位置。 当从文件中读取或写入某些内容时,读取/写入发生在文件指针的当前位置。 默认情况下,当打开文件进行读取或写入时,文件指针设置为文件的开头。 但是,如果以追加模式打开文件
日期 2023-06-12 10:48:40C/C++学习笔记十二 Input and Output (I/O)(1)
一、概述 输入和输出功能并未定义为核心 C++ 语言的一部分,而是通过 C++ 标准库提供(因此位于 std 命名空间中)。 包含iostream 库头文件并使用 cin 和 cout 对象来执行简单的 I/O。 二、iostream 库
日期 2023-06-12 10:48:40C/C++学习笔记 各版本主要新增内容一览
1、C++11 2011 年 8 月 12 日,ISO(国际标准化组织)批准了 C++ 的新版本,称为 C++11。 C++11 为 C++ 语言添加了一组全新的特性! 其中一些新功能很有帮
日期 2023-06-12 10:48:40C/C++学习笔记九
1、友元函数 友元函数提供了一种机制,使得在函数中能够访问类的私有数据成员和方法。 #include "stdafx.h" #include "iostream.h" #include "string.h" class CUser //定义一个类 { private:
日期 2023-06-12 10:48:40C/C++学习笔记八
1、构造函数自动转换 从CUser User = 2;这句来看,按理是不能通过编译的,不过在这里实际上调用了CUser(int nData)构造函数。 但是开发的时候,有时还需要禁止构造函数的自动转换功能(通过在构造函数前面加explicit关键字实现)
日期 2023-06-12 10:48:40C/C++学习笔记六
1、静态成员 使用static关键字定义静态变量。静态变量只被初始化一次。同样,在类中也可以使用static关键字将数据成员定义为静态成员。静态成员与静态变量不是同一概念。 静态成员被同一个类的所有对象共享,通过类名类来访问。 #include "stdafx.h" #inc
日期 2023-06-12 10:48:40C/C++学习笔记二
1、使用指针的指针 #include "stdafx.h" #include <iostream.h> int main(int argc, char* argv[]) { int* pArray[3]; //定义一个指针数组 //为pArray中的元素赋值 int nArray[3] = {1,
日期 2023-06-12 10:48:40传智播客c/c++公开课学习笔记--邮箱账户的破解与邮箱安全防控
一、SMTP协议 SMTP(SimpleMail Transfer Protocol)即简单邮件传输协议。SMTP协议属于TCP/IP协议簇,通过SMTP协议所指定的server,就能够把E-mail寄到收信人的server上。SMTPserver则是遵循SMTP协议的发送邮件server,用来发送或中转发出的电子邮件。
日期 2023-06-12 10:48:40《Effective C++》学习笔记条款13 以对象管理资源
条款 13 :以对象管理资源 例: voidf() { Investment *pInv = createInvestment(
日期 2023-06-12 10:48:40【C++快速上手】二十、explicit(显式)关键字学习笔记(待完善)
一、explicit(显式)关键字介绍 在C++中,我们有时可以将构造函数用作自动类型转换函数。但这种自动特性并非总是合乎要求的,有时会导致意外的类型转换,因此
日期 2023-06-12 10:48:40【C++快速上手】十一、assert学习笔记
总结 断言,是宏,而非函数忽略断言,在代码开头加上:#define NDEBUG 1、第一个断言案例 断言,是宏,而非函数。ass
日期 2023-06-12 10:48:40【C++快速上手】七、纯虚函数和抽象类学习笔记
1、初步认识虚函数和纯虚函数 1.1、虚函数 虚函数 是在基类中使用关键字 virtual 声明的函数。在派生类中重新定义基类中定义的虚函数时,会告诉编译器不要静态链接到该函数。 我们想要的是在程序中任意
日期 2023-06-12 10:48:40【C++快速上手】六、sizeof学习笔记
总结 原则1:空类的大小为1字节原则2:一个类中,虚函数本身、成员函数(包括静态与非静态)和静态数据成员都是不占用类对象的存储空间。原则3:
日期 2023-06-12 10:48:40【C++快速上手】四、this指针学习笔记
结论 this在成员函数的开始执行前构造,在成员的执行结束后清除。类的成员默认是private,而结构是public 1、this指针的作用 python中的self类比到C+&
日期 2023-06-12 10:48:40【C++快速上手】三、static学习笔记
结论 类中的静态变量由对象共享。对于不同的对象,不能有相同静态变量的多个副本。也是因为这个原因,静态变量不能使用构造函数初始化。类中的静态变量应由用户使用类外的类名和范围解析运算符显式初始化
日期 2023-06-12 10:48:40《C++ Primer Plus》学习笔记11
《C++ Primer Plus》学习笔记11 第17章 输入、输出和文件 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
日期 2023-06-12 10:48:40