C++
c++基础
予非池物
这个作者很懒,什么都没留下…
展开
-
C++ 23 翁恺> STL
原创 2021-12-20 14:59:22 · 875 阅读 · 0 评论 -
C++ 22 翁恺> 流
C++标准输入输出流:cout、cin(C中printf、scanf不安全,不对字符串里面进行检查)。以流的方式对文本进行操作、对外部设备的输入输出。inserter:把一个对象插入到输出流里面的运算符;<<extractor:把一个对象从流里面解析出来的运算符;>>流,一维(一个数字就能确定位置)单方向(流过去了就没有了,不能在任意的地方读写),左移右移针对整数来讲的,看<<、>>运算符的。流的形式:文本形式(所有的...原创 2021-12-20 14:50:07 · 741 阅读 · 0 评论 -
C++ 21 翁恺> 异常语句
try后面需要至少一个catch参数表里的变量,大括号里能用。参数表里...可以捕获所有异常,但是拿不到异常对象,所以一般是最后的补救措施。查找顺序,按catch的书写从第一个到最后一个。检查手段(针对每一条catch做1、2、3):1.exact match直接匹配 2. base class conversions子类的异常对象 3.ellipses ...如果第三个catch参数是underflow,编译器编译不通过。matherr是underflow的基类,underfl...原创 2021-12-20 10:48:20 · 925 阅读 · 0 评论 -
C++ 20 翁恺> 模板
交换两个 int 类型的数据:交换两个通用类型的数据:(如 float、strings、currency、Person等类型) 做成模板(函数模板)。使用交换模板:我们写出来的模板函数是一个声明,当c++的编译器看到 template 的时候什么也不干,只把 template 这些代码记下来。当使用时,因为有int类型的swap,所以他先使用int类型的swap;第二个float类型,是不能转化成int类型的,然后有一个swap模板,他会用这个模板在这制作出来一个float类型...原创 2021-12-17 16:22:17 · 865 阅读 · 0 评论 -
C++ 19 翁恺> 运算符重载
~ 以下运算符就可以被重载。 ~ 以下运算符不可以被重载。运算符重载:即写函数去改变运算符的行为。只有已经存在的运算符可以被重载,自己创造的运算符不能重载。只能对一个类或者枚举类型来做运算符重载,比如重新写一个 5+5 的 “+” 的运算符重载是不行的,或者凭空写一个重载是不行的。重载的运算符需要...原创 2021-12-16 11:26:19 · 738 阅读 · 0 评论 -
C++ 18 翁恺> 静态对象
static:持久存储(static修饰变量)、访问受限(static修饰函数或变量,该函数或变量只在当前.c文件可访问)~ 程序在编译时分配内存空间。static:持久存储(static修饰成员变量或函数,跨对象存储,不随着对象的改变而改变;或所有对象的static成员变量或函数一起改变,成员变量值保持一致)、访问受限(static修饰函数或变量,该函数或变量只在当前.c文件可访问)#include<iostream>using namespace std;class .原创 2021-12-16 10:56:45 · 497 阅读 · 0 评论 -
C++ 17 翁恺> 拷贝构造
#include<iostream>#include<string>using namespace std;static int objectCount = 0;class HowMany{public: HowMany() { objectCount++; print("HowMany()"); } void print(const string& msg="") { if (msg.size() != 0)cout << msg &.原创 2021-12-15 16:54:44 · 534 阅读 · 0 评论 -
C++ 16 翁恺> 引用再研究
如果reference(&)是一个本地变量或者全局变量,那么初始化的时候,需要给它另外一个变量的名字,即与另外一个变量绑定。如果reference是函数的参数或者是成员变量的话,没有办法在声明的时候给它捆绑,因为不知道这个reference在构造一个对象时和谁捆绑在一起,所以只能写出来一个声明,然后必须放在构造函数的初始化列表里说明,否则编译时报错error。如果要返回一个reference,与要返回一个指针类似,函数里不能返回本地变量的地址作为指针或reference,函数里return返原创 2021-12-15 11:18:20 · 603 阅读 · 0 评论 -
C++ 15 翁恺> 多态性
一个画图的程序,中心点center,绘画函数render,移动函数move,改变大小函数resize。center 变量与 move 函数可以直接继承,其它类的 render 函数与 shape 类的 render 函数需要有某种联系。virtual 如果 shape 类的子类里重新写了 render (名称一样、参数表相同),那么shape 类的render 与子类的 render 就是有联系的。有了virtual 子类和父类的同名函数才有联系,没有virtual子类和父类同名函数...原创 2021-12-14 17:00:55 · 542 阅读 · 0 评论 -
C++ 14 翁恺> 向上造型
如果employee和manager里面都有print 函数,则*ep调用的是employee的 print 函数。原创 2021-12-14 11:20:55 · 86 阅读 · 0 评论 -
C++ 13 翁恺> 引用
访问对象的三种方式:变量里存放对象来直接访问对象、指针访问对象、通过引用去访问对象。char & r 为 char c 的引用或别名,用 r 就是用 c。引用,定义时必须初始化,除非引用是成员变量(在构造变量的时候初始化,在构造函数的初始化列表)或者 在参数表里。本地变量或全局变量都需要初始化 或者 给它个初始值初始化。int & Y = X --初始化(即建立绑定关系)/Y= 18 --赋值。return x 就是返回一个int & x 返...原创 2021-12-13 16:57:46 · 343 阅读 · 0 评论 -
C++ 12 翁恺> const
1.const修饰变量,这个变量初始化后,变量的值不能修改;2. const修饰的变量仍然是变量,它不是常数,对于编译器来说,编译时变量是要分配地址的,常量则是编译时记录在内存表里的值;scope rules :作用域是程序中定义的变量所存在的区域。3. const修饰的变量编译前必须初始化,且变量在作用域值不能改变,extern const修饰的变量意味着定义在某处的全局变量,可以用(bufsize)其值,不能改变值;extern const:extern const修...原创 2021-12-13 11:53:15 · 1332 阅读 · 1 评论 -
C++ 11翁恺> 内联函数
1.内联函数用在函数体较小时,编译器直接将函数体插入到调用的地方;(牺牲空间减少程序运行调用函数的额外开销--典型的以空间换时间策略)2.内联函数的.h文件中,既要写声明,也要写定义,否则编译能过,ld-link连接时候报warning;注意: 编译器同一时间只能看见一个文件,即编译合成后的那个文件运行,因为引入 .h 文件时,没给内联函数的函数体,就会把内联函数当成普通函数调用,所以找不到不是内联的函数,所以会报上述warning。...原创 2021-12-13 10:53:18 · 301 阅读 · 0 评论 -
C++ 10 翁恺> 继承
说明:学生类是人类的扩充,学生类里有普通人类里没有的属性,加了点属于学生自有的东西。当你继承一个父类的时候,父类里所有的东西都有了。 例一:继承时构造函数调用情况 #include<iostream>using namespace std;class A...原创 2021-11-02 17:06:05 · 490 阅读 · 1 评论 -
C++ 09 翁恺> 初始化列表
说明:初始化列表里能初始化任何数据类型的数据,它和Point(float a, int b) { ...初始化...},与写在大括号里赋值这种是有差别的,初始化例表里对数据的初始化是在构造函数之前进行的,建议类里面的所有成员变量到要在初始化列表里进行初始化。...原创 2021-11-01 14:52:05 · 430 阅读 · 0 评论 -
C++ 08 翁恺> Friend
说明:一个类(或结构)在声明的时候 friend 就已经声明好了,以后的 friend 定义时就可以直接使用该类(或结构)的私有成员了,friend授权是在编译时候检查的,friend在运算符重载的时候会用的比较多。类与结构唯一的区别是:struct 默认 public 访问权限,class 默认 private 访问权限。...原创 2021-11-01 11:42:45 · 257 阅读 · 0 评论 -
C++ 07 翁恺>new & delete
说明:new一个对象的时候,先分配空间,再调用构造函数;delete一个对象的时候,先调用析构函数,再销毁对象的空间;new的时候带 [ ] ,delete销毁的时候也带 [ ]。说明:new int [10] 动态分配数组,new int [10] 就是带括号 [ ] 的new ,意思是分配10个 int 类型的空间,给指针 psome,这就需要用delete [ ] 来销毁这个空间,也就是说 psome 所指的是很多东西,销毁的时候 psome 所指的那么多个东西的析构函数都会被...原创 2021-11-01 10:47:07 · 135 阅读 · 0 评论 -
C++ 06 翁恺>构造与析构
>构造函数(构造器):创建对象(实例化)的时自动被调用。构造函数形式:类名() 或 类名(参数)。构造函数可以带参数,也就意味着,当你创建对象的时候需要写入参数。也就是,当实例化一个对象 a 的时候,实际上会去做a.X();>析构函数:当对象销毁时自动调用。析构函数形式:~类名()。析构函数不能有参数。...原创 2021-10-29 15:37:25 · 129 阅读 · 0 评论 -
C++ 05 翁恺>成员变量
TicketMachine.h#ifndef TICKETMACHINE_H_#define TICKETMACHINE_H_class TicketMachine{public: TicketMachine();//构造函数 virtual ~TicketMachine();//析构函数 void showPrompt();//函数原型,没有实际body,有一些什么样的函数 void insertMoney(int money); void showBalance(); .原创 2021-10-29 14:53:50 · 168 阅读 · 0 评论 -
C++ 04 翁恺>声明(Declarations) VS. 定义(Definitions)
1 .> A .cpp file is a compile unit一个.cpp文件是一个编译单元,程序编译的时候只对这个.cpp文件进行的,他只看到这一个.cpp文件,看不到其他的东西> Only declarations are allowed to be in .h · extern variables (extern 变量) · function prototypes (函数原型) ·class/struct declarat...原创 2021-10-28 16:45:47 · 298 阅读 · 0 评论 -
C++ 03 翁恺>自动售票机的例子(一个简单的c++程序构成)
TicketMachine.h文件#ifndef TICKETMACHINE_H_#define TICKETMACHINE_H_class TicketMachine{public: TicketMachine();//构造函数 virtual ~TicketMachine();//析构函数 void showPrompt();//函数原型,没有实际body,有一些什么样的函数 void insertMoney(int money); void showBalance();原创 2021-10-28 11:11:10 · 917 阅读 · 1 评论 -
C++ 02 翁恺>什么是对象(object)
··Object = Entity ·· Object may be -Visible or (可见 杯子) -invisible (不可见 说的话,可以被记录,可以被加工处理,只是,没有可见的外形,没有自主的动作,但是这都不妨碍他成为一个对象)对象等价于一个东西,有可能可见,也有可能不可见。Object is variable in programming language. 在程序设计语言中他就是一个变量Object = Attributes ...原创 2021-10-26 16:27:40 · 526 阅读 · 0 评论 -
C++ 01 Hello World !
#include<iostream> // iostream--引入的文件,文件名并不一定以.h结尾,windows下的一种写法而已using namespace std;//用一个名词空间名为stdint main(){ int age; cout << "Hello,World ! I am " << 18 << "Today!" << endl;//输出 cout << "input age:"; cin &g.原创 2021-10-26 14:56:05 · 94 阅读 · 0 评论 -
C++基于Socket的TCP网络编程IPv6
TCP服务端IPv6// StudyC++Sokcet.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include <iostream>#include<winsock2.h>//winsock2.0的头文件,链接windows的动态库#include<ws2tcpip.h>//sockaddr_in6的头文件using namespace std;//命名空间//指定动态库的lib文件#pragma commen原创 2020-05-17 10:52:06 · 1241 阅读 · 0 评论