随笔分类 -  C++

C++语法,C++89,C99,C++11,STL
摘要:C/C++格式化输入,输出 1.C语言 1. 语言函数 2. 说下遇到的坑 sscanf_s() 2.C++ 1. 利用stringstream 流进行处理,安全 stringstream 中包含 + istringstream (输入) + ostringstream(输出) 2. strings 阅读全文
posted @ 2018-11-30 00:13 Kernel001 阅读(361) 评论(0) 推荐(0) 编辑
摘要:恢复内容开始 C++11 新特性 借鉴于 https://www.cnblogs.com/feng-sc/p/5710724.html C++ 2011/2014 统称 C++2.0 1.auto关键字 auto这个关键字,是一个自动检测类型的关键字,当类型很复杂时,无法确定变量/参数类型时,可以使 阅读全文
posted @ 2018-11-12 22:26 Kernel001 阅读(253) 评论(0) 推荐(0) 编辑
摘要:一、C++对象的创建: 对象创建的注意事项: 1.对象数组里的个数,就是创建对象的个数,普通数组一样;下标从0 到数组里数字 -1; 2.类名* 对象指针 <--> 这里只是一个指针,占4个字节,所以就不得初始化; 这里的执行结果是 调用了构造函数调用了构造函数调用了构造函数调用了构造函数 调用了构 阅读全文
posted @ 2017-11-02 20:24 Kernel001 阅读(686) 评论(0) 推荐(0) 编辑
摘要:二十三 运行时的类型信息 1 typeid运算符 #include typeid(类型/对象) 1)返回typeinfo的对象,用于描述类型信息。 2)在typeinfo类中包含了一个name()成员函数返回字符串形式类型信息。 3)typeinfo类支持"=="、"!="的操作符重载,可以直接进行类型之间的比较,如果类型之间存在多态的继承关系,还可以利用多态的特性确定实际的对象类型。 eg:... 阅读全文
posted @ 2017-10-25 17:06 Kernel001 阅读(227) 评论(0) 推荐(0) 编辑
摘要:二十二 多态(Polymorphic) 1 函数重写(虚函数覆盖)、多态概念 如果将基类中的某个成员函数声明为虚函数,那么子类与其具有相同原型的成员函数就也将是虚函数,并且对基类中的版本形成覆盖。 这时,通过指向子类对象的基类指针,或者引用子类对象的基类引用,调用该虚函数,实际被执行的将是子类中覆盖版本,而不是基类中的原始版本,这种语法现象称为多态. eg: class Bas... 阅读全文
posted @ 2017-10-25 17:05 Kernel001 阅读(220) 评论(0) 推荐(0) 编辑
摘要:二十一 继承(Inheritance) ... 5 子类的构造函数和析构函数 5.1 子类的构造函数 1)如果子类构造函数没有显式指明基类子对象的初始化方式,那么该子对象将以无参方式被初始化。 2)如果希望基类子对象以有参的方式被初始化,必须在子类构造函数的初始化表中显式指明。 class 子类:public 基类{ 子类(...):基类(基类子对象构造实参表){} }; 3)... 阅读全文
posted @ 2017-10-25 17:03 Kernel001 阅读(122) 评论(0) 推荐(0) 编辑
摘要:二十 操作符重载 5 函数操作符"()" 功能:让对象当做函数来使用 注:对参数的个数、返回类型没有限制 eg: class A{...}; A a; //a.operator()(100,200) a(100,200); 6 下标操作符"[]" 功能:让对象可以当做数组一样去使用 注:非常对象返回左值,常对象返回右值 eg: string s("hello"); //s.opera... 阅读全文
posted @ 2017-10-25 17:02 Kernel001 阅读(289) 评论(0) 推荐(0) 编辑
摘要:二十 操作符重载 eg:复数x+yi 3+4i (1+2i) + (3+4i) = 4+6i 1 双目操作符(L # R) 1.1 运算类的双目操作符:+ - * / -->左右操作数可以是左值也可以是右值 -->表达式结果是右值 1)成员函数形式 L#R的表达式会被编译器自动处理为L.operator#(R)的成员函数调用,该函数的返回值即为表达式的值。 2)全局函数形式 L#R的表达式会... 阅读全文
posted @ 2017-10-25 16:51 Kernel001 阅读(191) 评论(0) 推荐(0) 编辑
摘要:十七 拷贝构造和拷贝赋值 1 浅拷贝和深拷贝 1)如果一个类中包含指针形式的成员变量,缺省的拷贝构造函数只是复制了指针变量的本身,而没有复制指针所指向的内容,这种拷贝方式称为浅拷贝。 2)浅拷贝将导致不同对象之间的数据共享,如果数据存放在堆区,可能会在析构时引发"double free"异常,因此就需要自己定义一个支持复制指针指向的内容的拷贝构造函数,即深拷贝。 2 在C++类中会提供一个缺省... 阅读全文
posted @ 2017-10-25 16:50 Kernel001 阅读(446) 评论(0) 推荐(0) 编辑
摘要:十四 构造函数和初始化表 ... 5 初始化表 1)语法形式 class 类名{ 类名(形参表):成员变量1(初值),...{} }; 2)必须要使用初始化表的场景 --》如果有类 类型的成员变量,而该类又没有无参构造函数,则必须通过初始化表来初始化该成员变量。 --》类中包含"const"和“引用”成员变量,必须在初始化表中显式的初始化。 注:成员变量的初始化顺序由声明顺序决... 阅读全文
posted @ 2017-10-25 16:35 Kernel001 阅读(303) 评论(0) 推荐(0) 编辑
摘要:十三 类的定义与实例化 1 类的一般形式 class/struct 类名:继承表{ 访问控制限定符: 类名(形参表):初始化表{}//构造函数 ~类名(void){}//析构函数 返回类型 函数名(形参表){}//成员函数 数据类型 变量名;//成员变量 }; 2 访问控制限定符 1)public 公有成员,类内部和外部都可以访问的成员 2)private 私... 阅读全文
posted @ 2017-10-25 16:20 Kernel001 阅读(1137) 评论(0) 推荐(0) 编辑
摘要:十 C++的引用(Reference) 1 2 3 引用型函数参数 1)将引用用于函数的参数,可以修改实参变量的值,同时也能减小函数调用的开销。 2)引用参数有可能意外修饰实参的值,如果不希望修改实参变量本身,可以将其定义为常引用,提高传参效率的同时还可以接收常量型的实参。 4 引用型函数返回值 1)可以将函数返回类型声明为引用,避免函数返回值所带来的开销。 2)一个函数返回类型被声明为... 阅读全文
posted @ 2017-10-25 16:09 Kernel001 阅读(833) 评论(0) 推荐(0) 编辑
摘要:六 C++的布尔类型 1 bool类型是C++中基本类型,专门表示逻辑值:true/false 2 bool在内存上占一个字节:1表示true,0表示false 3 bool类型可以接收任意类型和表达式的结果,其值非0则为true,值为0则为false 七 操作符别名(了解) && --》 and || --》 or { --》 ... 八 C++函数 1 函数重载 strcpy(... 阅读全文
posted @ 2017-10-25 16:03 Kernel001 阅读(545) 评论(0) 推荐(0) 编辑
摘要:一 C++概述 1 C++历史背景 1)C++的江湖地位 jave C C++ C# python 2)C++之父:Bjarne Stroustrup(1950--) 1979,Cpre,为C语言增加类的机制 1983,Bjarne发布了全新的编程语言C with Class 1985,CFront1.0《The C++ programming Language》 3)C++发展过程 19... 阅读全文
posted @ 2017-10-25 15:59 Kernel001 阅读(283) 评论(0) 推荐(0) 编辑
摘要:模板和标准模板库(STL) 一、模板的起源 变量四要素:类型、名称、值、地址 数据类型:存储形式、编码格式、运算规则、访问方式 int a = 0; // 补码 float b = 0; // 阶码 char c = 'A'; // ASCII char_t d = 'A'; // UCS-4 int i = 0; i++; cout learn (...); 静态类型:由编译器在编译源代码的过... 阅读全文
posted @ 2017-10-23 09:00 Kernel001 阅读(311) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示