![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
(】
这个作者很懒,什么都没留下…
展开
-
git/GitFlow使用
给master配备一个develop分支,在本地新建空的develop分支,以后以develop为父分支,推送到服务器。HEAD默认指向分支名。原创 2022-07-25 18:21:05 · 172 阅读 · 0 评论 -
文件操作
对文件进行操作有三个头文件istream 输入流ostream 输出流fstream 文件流,有前两个的功能写文件,操作步骤包含头文件#include <fstream>创建流对象fstream fs;打开文件fs.open("文件路径", 打开方式);写数据fs << "写入的数据";关闭文件fs.close();这里的fs是文件读写的通用类名,对于写文件也可以用ofstream文件的打开方式读文件读文件与写文件类似,再打开文件步骤要检查原创 2021-08-24 21:17:29 · 104 阅读 · 0 评论 -
纯虚函数与抽象类
在多态中,通常父类中的虚函数是毫无意义的,主要实现都在子函数的重写函数里,所以就能把父类中的虚函数写成纯虚函数当类中有了纯虚函数,这个类就叫抽象类抽象类的写法也很好写,不写函数大括号,直接在最后写上 = 0;抽象类的哇特点:抽象类无法实例化对象子类必须重写父类的虚函数,否则子类也属于抽象类上代码:父类中有纯虚函数,子类继承,子类也属于纯虚函数,不可实例化对象在看重写show函数(返回值相同,函数名相同,形参列表相同,void就是没有),所以子类实例化对象就不报错了...原创 2021-08-23 21:48:29 · 102 阅读 · 0 评论 -
菱形继承和c++开发人员命令提示工具的使用
菱形继承的问题菱形继承问题出现在多个子类继承父类的时候,将父类的数据一分为二,问题是在子类又出现了多继承的问题。被一分为二的属性又重新被赋值给了一个子类,本应该就是一份数据,这时确出现了两份,见如下案例#include <iostream>using namespace std;//菱形继承问题//羊和驼都继承了动物类,动物中的Age属性被一分为二//羊驼是羊和驼的后代,子类多继承了父类,对于羊驼来说Age属性发生冲突class Animal{public: int Ag原创 2021-08-23 21:27:51 · 102 阅读 · 0 评论 -
c++函数重载和函数重写
函数重载:函数名必须一样,形参类型不同,返回值不作为函数重载的判断条件函数重写:函数名必须相同,形参列表必须相同,返回值必须相同。原创 2021-06-13 15:14:55 · 168 阅读 · 0 评论 -
面向对象的三大特征之二——多态
多态分成两类:静态多态:函数重载和运算符重载斗叫多态,就是多种形态,,函数名复用。c++中指的多态一般是动态多态。动态多态:满足条件,要有继承关系,父类中有虚函数,子类重写父类的虚函数,运用父类的指针或引用去指向类的对象。...原创 2021-06-13 15:11:49 · 76 阅读 · 0 评论 -
面向对象的三大特征之一——继承
如图所示:派生类B以3种方式继承父类A。如果是public继承,父类中的成员属性到子类中仍然是是真名属性,不变。如果是protected继承,在子类中继承得到的父类属性会变化,保护继承,最低的访问权限的就是保护属性(指的是继承得到的属性)如果是private继承,这种继承方式,得到的父类所有的属性都将变成私有属性父类中的私有成员,除了友元,用继承的方式,是访问不到的...原创 2021-06-13 14:55:15 · 96 阅读 · 0 评论 -
运算符重载
重载+号运算符在有些时候,比如重载加号运算符,能做一些普通的运算,却无法把两个类相加。可以重新定义+ 运算符重载+运算符的功能函数就是operator关键字,后边加要重载的符号。重载运算符可以重载函数,可以写多个版本的重载运算符,(类+类、类+整形、……)重载运算符函数可以卸载类内也可以卸载类外,一般写在类内能少些一个形参。class Persion{public: int age; //成员函数重载 Persion operator+(Persion & p);};Pe原创 2021-06-10 21:33:36 · 381 阅读 · 0 评论 -
类做返回值,链式编程,指针(引用返回),非指针返回
class Persion{public: int age; string name; Persion(int age, string name) { this->age = age; this->name = name; } Persion* addAge(int age) { this->age += age; return this; }};void text(){ Persion p = Persion(0, "sdfds"); //原创 2021-05-31 23:52:15 · 154 阅读 · 0 评论 -
类的占用空间和sizeof计算数组长度
class Persion{};void text01(){ Persion p; int ss[11]; cout << "size of = " << sizeof(p) << endl; cout << "数组总打小: " << sizeof(ss) << endl; cout << "每一个数组元素的大小: " << sizeof(ss[0]) << endl; cout原创 2021-05-31 23:14:36 · 149 阅读 · 0 评论 -
静态成员函数的那些事、静态成员变量
1、类内静态成员函数不属于这个类的某一个对象,它被所有的类对象共用,void text(void){ Persion p; p.func(); Persion::func();}静态成员函数有两种调用方式:对象 去 .直接用类名冒号也可以,因为毕竟它不属于某一个对象。2、静态成员函数只能访问静态成员变量,不能访问非静态成员变量...原创 2021-05-26 09:08:21 · 147 阅读 · 0 评论 -
当c++类中存在另一个类的对象时
#include <iostream>using namespace std;class Phone{public: string str; Phone(void) { cout << "这是Phone的构造函数" <<endl; }};class Persion{public: string name; Phone phone; Persion(string name, Phone phone) { cout <<原创 2021-05-25 22:56:38 · 274 阅读 · 0 评论 -
构造函数和拷贝构造、深浅拷贝、new、初始化列表
构造函数和拷贝构造函数当创建一个类时,c++会自动提供三个函数,默认构造函数、默认拷贝构造函数、析构函数,当用户主动写了某个函数的时候,c++本身就不提供了,比如用户写了有参构造函数,那么c++就不提供默认的无参构造了,对,就是不提供无参构造,虽然你写的是有参构造。c++提供的默认构造函数,就是空的。c++提供的默认拷贝构造函数,是简单的值传递,不是空的!!!当用户手动写了拷贝构造函数之后,很神奇!!,c++就不在提供默认构造函数,意思就是在单纯的创建一个对象会报错的。。。总结:1、我写了构原创 2021-05-24 21:44:58 · 269 阅读 · 0 评论 -
c++常识
构造函数和析构函数构造函数是完成对象的初始化工作析构函数是完成对象的清理工作这两个函数也可以不写,但是编译器会帮我们实现,编译器提供一个空实现,构造函数:在对象被创建的时候自动调用,一般完成变量的额初始化工作析构函数:对象在被销毁之前,被调用,一般用来执行内存清理工作构造函数可以有参数,因此可以发生重载,只会调用一次析构函数不能有参数,因此不能发生重载, 只会调用一次拷贝构造函数拷贝构造函数形式Persion::Persion(const Persion &p)所谓的拷贝原创 2021-05-22 00:41:38 · 83 阅读 · 0 评论