C++
.
CoderZk
Keep Fighting Stay Focus
展开
-
C++知识点总结(其他语法2-模板, 类型转换, C++11新特性)
文章目录模板(template)模版2-编译细节类型转换1.const_cast2.dynamic_cast3.static_cast(了解, 开发中很少用)4.reinterpret_castC++11新特性6.Lambda表达式模板(template)泛型, 是一种将类型参数化以达到代码复用的技术, C++中使用模板来实现泛型模板的使用格式如下:template <typename\class T>typename和class是等价的模板没有被使用时, 是不会被实例化出来的.例原创 2020-06-20 00:18:52 · 577 阅读 · 1 评论 -
C++知识点总结(其他语法1-运算符重载)
运算符重载1(operator overload)运算符重载(操作符重载) : 可以为运算符增加一些新的功能.#include <iostream>using namespace std;class Point { friend Point operator+(const Point &, const Point &);private: int m_x; int m_y;public: Point(int x, int y) : m_原创 2020-06-20 00:16:09 · 437 阅读 · 0 评论 -
C++知识点总结(面向对象6-隐式构造, 友元, 内部类, 局部类)
对象类型的参数和返回值使用对象类型作为函数参数或者返回值, 可能会产生一些不必要的中间对象(1)对象类型做函数参数时void test1(Car car) { // 对象类型作为参数 }int main() { Car car1; test1(car1);}把外面的对象传给里面的对象时, 会产生一个新的对象(不必要的中间对象), 因为相当于void test1(Car car = car1)利用一个已经存在的对象, 构建出了一个新的对象, 所以就是拷贝构造.解决这个问题: 传引用或指原创 2020-06-20 00:14:06 · 437 阅读 · 0 评论 -
C++知识点总结(面向对象5-const成员, 拷贝构造函数)
const成员, 引用成员const成员: 被const修饰的成员变量, 非静态成员函数.const成员变量:1.必须初始化(必须在类内部初始化), 可以在声明的时候直接初始化赋值.2.非static的const成员变量还可以在初始化列表中初始化.const成员函数(非静态):(重点)1.const关键字写在参数列表后面, 函数的声明和实现都必须带const2.内部不能修改非static成员变量.static成员变量的内存全世界只有一份, 哪里都可以修改, 而这个const的作用是限制了这个原创 2020-06-20 00:12:19 · 802 阅读 · 0 评论 -
C++知识点总结(面向对象4-多继承, 静态成员static)
多继承-虚函数如果子类继承的多个父类都有虚函数, 那么子类对象就会产生对应的多张虚表.同名函数同名成员变量多继承2-菱形继承菱形继承带来的问题:最底下子类从基类继承的成员变量冗余, 重复(有两个age, 内存是两份, 从语法上正确, 但不合理)最底下子类无法访问基类的成员, 有二义性.多继承3-虚继承虚继承可以解决菱形继承带来的问题Student和Worker共用一个age, 共享从虚基类里面搞过来的成员变量都放到最后面, 这个对象会多出4个字节, 存放虚表指针, 20和12原创 2020-06-20 00:08:40 · 456 阅读 · 0 评论 -
C++知识点总结(面向对象3-多态)
多态1父类指针, 子类指针(1)父类指针可以指向子类对象, 是安全的, 开发中经常用到(继承方式必须是public)(2)子类指针指向父类对象是不安全的.(因为不安全, 所以编译器会报错)#include <iostream>using namespace std;class Person {public: int m_age;};class Student : public Person {public: int m_score;};int mai原创 2020-06-20 00:06:13 · 444 阅读 · 0 评论 -
C++知识点总结(面向对象2-构造函数, 初始化列表)
构造函数1(Constructor)构造函数(也叫构造器), 在对象创建的时候自动调用, 一般用于完成对象的初始化工作.特点:(1)函数名与类同名, 无返回值(void都不能写), 可以有参数, 可以重载, 可以有多个构造函数.(2)一旦自定义了构造函数, 必须用其中一个自定义的构造函数来初始化对象.注意:(1)通过malloc分配的对象不会调用构造函数(2)通过new分配的对象可以调用构造函数, 即在堆空间中的对象可以调用构造函数, 在栈空间的也可以, 在全局区(数据段)的也可以.只有mal原创 2020-06-20 00:03:46 · 348 阅读 · 0 评论 -
C++知识点总结(面向对象1-类和对象, this指针, 内存布局)
面向对象1-类和对象C++中可以使用struct, class来定义一个类struct 和 class的区别:struct的默认成员权限是publicclass的默认的成员权限是private变量名规范参考:全局变量: g_ global g_age成员变量: m_ member m_age静态变量: s_常量: c_ const或使用驼峰标识 gAge, mAge面向对象2- 对象的内存#include <iostream>using nam原创 2020-06-20 00:01:21 · 443 阅读 · 0 评论 -
C++知识点总结(基础语法2-内联函数, const, 引用)
内联函数1(inline function)(1)使用inline修饰函数的声明或实现, 可以使其变成内联函数.(2)建议声明和实现都增加inline修饰特点:(1)编译器会将函数调用直接展开为函数体代码, 就不存在函数调用了.代价:会增加代码数量, 使代码变臃肿.但是如果不使用内联函数的话, 由于在函数调用过程中, 会先开辟栈空间给函数, 然后执行函数内的代码, 最后回收栈空间.存在这样一个操作, 如果这个函数频繁调用的话, 就会频繁进行这个操作, 使效率变低.所以什么时候使用内联函数?1原创 2020-06-19 23:58:49 · 437 阅读 · 0 评论 -
C++知识点总结(基础语法1-函数重载, 默认参数)
默认情况下, 不管是double, 还是float , 输出一个小数, 最多输出6位有效数字.string 字符串类型 包含在#include <string>头文件中布尔类型 bool 作用: 布尔数据类型代表真或假的值bool类型只有两个值:true 真(本质是1)false 假(本质是0)bool类型占1个字节大小另外, bool类型除了0代表假, 其它都代...原创 2020-06-19 22:39:34 · 386 阅读 · 0 评论 -
C++知识点总结
静态成员经典应用-单例模式单例模式:设计模式的一种, 保证某个类永远只创建一个对象.1.构造函数\析构函数私有化2.定义一个私有的static成员变量指向唯一的那个单例对象3.提供一个公共的访问单例对象的接口.#include <iostream>using namespace std;class Rocket {private: Rocket() {} ...原创 2020-02-12 15:27:50 · 233 阅读 · 0 评论 -
浅谈c++string类用法
借鉴于:https://blog.csdn.net/liitdar/article/details/804986341.string转换为char*使用c_str()方法或data()方法,这两个方法在c++11标准中用法相同//string 转换为char*#include <iostream>#include <string>using namespac...原创 2020-01-30 19:29:23 · 219 阅读 · 0 评论