C++
C++相关语法及知识
幼、稚%
这个作者很懒,什么都没留下…
展开
-
认识C++的单例模式
单例模式也称为单件模式、单子模式,可能是使用最广泛、最简单的设计模式。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享懒汉模式特点:不用的时候不会加载配置文件,只有到用的时候才会加载,也就是加载会有延迟//定义一个单例类,使用类的私有静态指针变量指向类的唯一实例,并用一个公有的静态方法获取该实例。class Singleton {private: //构造函数私有化 Singleton() {} //指向唯一实例的静态指针M_Instance,并且原创 2020-09-16 22:11:25 · 137 阅读 · 1 评论 -
C++多态总结
多态概念:多种形态,完成某个具体行为,不同的对象完成时可能会有不同的效果多态:看实际指向的实体非多态:看类型例如:微信抢红包多态的定义与实现1.构成条件多态是在不同继承关系的类对象,去调用同一函数,产生不同的行为。必须通过基类的指针或者引用调用虚函数。被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写。class Person {public: virtual void BuyTicket() { cout << "买票-全价" << endl原创 2020-09-07 10:47:05 · 163 阅读 · 0 评论 -
C++继承总结
继承的概念继承机制是面向对象程序设计使代码可以复用的重要手段,它允许程序员在保持原有类特性的基础之上进行其他扩展,增加功能,这样产生的新类,称之为派生类。继承呈现了面向对象程序设计的层次结构,体现了有简单到复杂的认知过程。class Person{public:void Print(){cout << “name” << _name << endl;cout << “age” << _age << endl;}pro原创 2020-07-30 20:23:57 · 371 阅读 · 1 评论 -
vector模拟实现
#include<iostream>#include<string>using namespace std;template <class T>class Vector {private: T* _start;//首元素开始的位置 T* _finish;//最后一个元素结束的位置 T* _end;//空间的结束位置public: Vector() :_start(nullptr) ,_fini原创 2020-06-20 21:50:15 · 109 阅读 · 0 评论 -
String类的模拟实现
#include<iostream>#include<string>using namespace std;class String {private: char* _str; size_t _size; size_t _capacity;public: //string迭代器:通过指针实现 typedef char* iterator; typedef const char* const_iterator; itera原创 2020-06-15 21:29:53 · 122 阅读 · 0 评论 -
C++——内存管理
示例int globalVar = 1;static int staticGlobalVar = 1;void Test(){ static int staticVar = 1; int localVar = 1; int num1[10] = {1, 2, 3, 4}; char char2[] = "abcd"; char* pChar3 = "abcd"; int* ptr1 = (int*)malloc(sizeof (int)*4); int* pt原创 2020-05-30 21:41:36 · 181 阅读 · 0 评论 -
C++——日期类实现以及六大成员函数
六大成员函数构造函数**功能:**在已有空间上初始化对象成员变量1.如果没有显示定义,编译器会自动生成,如果定义了任何一个构造函数,编译器都不会再自动生成2.构造函数支持重载3.默认构造:无参、全缺省、编译器自动生成,这三者只能存在其一4.创建对象时编译器自动调用5.如果有自定义成员,构造函数会自动调用自定义成员的默认构造,如果自定义成员没有默认构造函数,编译不会通过析构函数**功能:**对象销毁之前,清理对象的资源,不是销毁对象1.如果没有显示定义,编译器会自动生成2.不支持重载,只原创 2020-05-26 17:40:38 · 395 阅读 · 1 评论 -
C++——引用
引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间。void TestRef(){ int a = 10; int& ra = a;//<====定义引用类型 printf("%d",&a); printf("%d",&ra);//与上面输出地址相同}引用特性引用在定义时必须初始化一个变量可以有多个引用引用一旦引用一个实体,再不能引用其他实体常引用void Tes原创 2020-05-18 21:19:45 · 139 阅读 · 0 评论 -
C++——缺省参数、函数重载
缺省参数缺省参数是声明或定义函数时为函数的参数指定一个默认值。在调用该函数时,如果没有指定实参则采用该默认值,否则使用指定的实参。例void TestFunc(int a = 0){ cout<<a<<endl;}int main(){ TestFunc(); // 没有传参时,使用参数的默认值 TestFunc(10); // 传参时,使用指定的实参}缺省参数分类1.全缺省参数void TestFunc(int a = 10, int b =原创 2020-05-18 21:10:05 · 171 阅读 · 0 评论 -
C++——命名空间
使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的。普通的命名空间// N1为命名空间的名称namespace N1 {// 命名空间中的内容,既可以定义变量,也可以定义函数 int a; int Add(int left, int right){ return left + right; }}...原创 2020-05-18 20:52:22 · 105 阅读 · 0 评论