c++
zzyczzyc
越努力越幸运
展开
-
多线程和锁
线程锁原创 2021-01-16 10:15:00 · 128 阅读 · 0 评论 -
友元
友元函数如果类外有函数经常访问类中的私有成员(通过Get或Set方法),那么可以将其申明为类的友元函数,允许访问类的私有成员(但是也有弊端:破坏了类的封装特性,使得外部函数可以访问私有成员)。如:class Point{public: friend int CalculateArea(Point& p1, Point& p2); //申明此函数为友元函数,此函数在...原创 2019-02-18 17:36:33 · 5496 阅读 · 0 评论 -
操作符重载
文章目录操作符重载规则单目运算符++(左)++(右)双目操作符重载+运算符+=运算符操作符重载规则不能被重载的操作符符号符号举例.Peron.name.*Person.*name=*(Person.name)::作用域操作符?:条件操作符操作符重载不能改变操作数的个数操作符重载不改变运算顺序(依然先算 * / 后算+ -)操作符重...原创 2019-02-18 20:02:15 · 1789 阅读 · 0 评论 -
智能指针
智能指针在java中如果在堆上开辟内存是不需要手动释放的,我们叫做智能指针;但是在C++中如果用new在堆上开辟了空间,我们需要用delete进行手动释放,否则造成内存泄露。 在C++中,已提供基于模板的智能指针操作,通过#include<memory>:auto_ptr<int> ptr(new int); // int* ptr= new int;auto...原创 2019-02-20 19:37:33 · 164 阅读 · 0 评论 -
强化练习-string类的实现
MyString.h#pragma once#include <iostream>using namespace std;class Mystring{public: Mystring(); Mystring(const char* str); Mystring(const Mystring& another); ~Mystring(); char...原创 2019-02-20 21:24:42 · 149 阅读 · 0 评论 -
继承
文章目录类和类之间关系继承类和类之间关系A has B:包含关系,类B已经是类A的数据成员。A uses B:拥有关系,类A中的部分函数使用了类B,可能是通过友元或者函数参数建立联系。A is B :继承关系,具有传递性。耦合度:is &amp;gt; has &amp;gt; uses ,面向对象追求的最高境界:高类聚、低耦合继承简单例子:student.h#include &quot;stda...原创 2019-02-20 22:05:41 · 155 阅读 · 0 评论 -
企业员工薪资管理-多态案例
文章目录题目介绍代码EmployeeTechManagerSaleManSalesManager测试代码题目介绍企业有四类人,分别是技术人员、经理、销售、销售经理编号:公司每添加一个人,编号加一薪资计算方法:技术人员:按小时计算,分等级,等级默认为1,每小时100;然后每提高一个等级,时薪+100,等级时薪上限分别:4和400经理:固定工资:8000,默认等级1,然后每提高一个等...原创 2019-03-02 21:20:13 · 1491 阅读 · 2 评论 -
Boost: 格式化输出format
指定位置,用两个%%夹着 boost::format fmt("julian %2% %1% world "); cout << fmt%"hello"%"say"<< endl;第一句的建立format对象,1和2可以理解第几个输入参数第二句相当于传递参数,指定类型,只有一个%,参数按从头到尾的顺序, boost::format f...原创 2019-07-02 09:52:44 · 807 阅读 · 0 评论 -
C++11一些关键字的技巧
文章目录auto迭代器模板for 循环注意事项typeiddecltypeauto在编译期间,自动根据后面的类型进行类型推导迭代器正常情况下: std::vector<std::string> container; for(std::vector<std::string>::iterator i= container.begin(); i!=co...原创 2019-07-02 11:26:15 · 155 阅读 · 0 评论 -
c++11中using的使用
文章目录用法一:命名空间用法二:alias的使用用法三:子类引用基类成员用法一:命名空间这种用法估计使用最多的,为了防止定义变量名、函数名冲突,把它们定义在一个命名空间内,使用的时候需要进行命名空间的申明:using namespace std;就不过多讲解。用法二:alias的使用using 还可以指定别名,比如using SO3d = SO3<double>; 那么它和...原创 2019-06-30 11:15:06 · 2177 阅读 · 1 评论 -
c语言实现多态
c语言实现多态的原理原创 2019-02-23 17:29:15 · 1000 阅读 · 0 评论 -
this指针
this指针this指针传递的是当前对象的指针,这样每个对象操作自己的成员变量this指针 是常量指针,不可修改class Goods{public: Goods(int w):m_weight(w) { } int Get() { this++; //报错,必须是可修改的左值 ,证明传递的是: Goods* const this return m_we...原创 2019-02-18 15:33:00 · 142 阅读 · 0 评论 -
抽象类编程练习-组装电脑
组装电脑的架构图:cpu.h#pragma once#include <iostream>using namespace std;class CPU{public: CPU() {} virtual ~CPU() {} virtual void CPUType() = 0;};class Intel :public CPU{public: vir...原创 2019-02-23 16:21:23 · 373 阅读 · 0 评论 -
命名空间 namespace
C++ primer 第5版 p785文章目录命名空间命名空间的定义命名空间的使用命名空间意义:在开发大型项目的时候,一般使用很多库,每个库都可能定义了大量的类、方法、模板、变量等。库与库之间难免会有重复(有可能不是一个人写的),我们可以将库或者其中特定的部分 names 放到全局的namespace中。命名空间的定义定义一个命名空间 SpaceA ,(只能定义在全局域,不能定义在函...原创 2019-02-16 17:07:18 · 316 阅读 · 1 评论 -
函数指针、数组指针
定义方式定义一个函数类型:返回值是int,参数列表是(int, int)型typedef int(TYPE_1)(int, int); ////定义一个函数指针类型: 指向的函数的返回值是int,参数列表是(int, int)型 typedef int(*TYPE_2)(int, int) 使用定义的是函数类型typedef int*(MYTYPE_1)(int...原创 2019-02-16 18:59:43 · 172 阅读 · 0 评论 -
构造、析构、拷贝
构造函数类提供默认的无参构造函数和拷贝构造函数,如果自己手动添加构造函数,默认将不复存在,如果提供显示的构造,默认无参构造将会被隐藏,但是默认拷贝还在;如果显示的写了一个拷贝构造函数 ,会隐藏默认的无参构造函数和默认的拷贝构造函数析构函数类提供默认的析构函数,如果手动添加默认将不存在析构顺序和构造顺序相反应用场景Test.hclass Test{public: T...原创 2019-02-16 21:43:56 · 317 阅读 · 0 评论 -
构造函数的初始化列表
文章目录构造函数初始化列表类A中如果有成员是其他类B的对象, 则构造函数需要使用初始化列表进行B的初始化常量的成员变量的初始化**只能**写在初始化的列表中直接在构造函数中赋值和写在初始化列表中的区别构造函数初始化列表类A中如果有成员是其他类B的对象, 则构造函数需要使用初始化列表进行B的初始化person.h#pragma once#include &lt;iostream&gt;...原创 2019-02-17 17:04:59 · 2423 阅读 · 0 评论 -
new、delete
文章目录概念C与C++使用对比malloc、free和new、delete之间的区别概念new和delete是C++中的操作符new和delete是在自由存储区(可以理解为堆)上开辟空间,所以也需要手动释放C与C++使用对比申请、释放 一个 int 空间c中的写法int* p =(int*)malloc(sizeof(int));*p=10;if(p!=NULL)...原创 2019-02-17 19:11:08 · 107 阅读 · 0 评论 -
static
文章目录c中的static、C++中static拓展static修饰类中成员变量static修饰类中成员函数static 实例c中的static、C++中static拓展在c中的作用C++中依然保留:修饰变量:放在静态区,只初始化一次,局部变量下次使用还是上次值;全局变量只能在本文件中访问。修饰函数:只对本文件可见,其他文件不能使用,也可以定义重名函数。C++拓展stat...原创 2019-02-17 20:30:09 · 351 阅读 · 0 评论 -
综合强化练习-仓库货物管理(链表、static、对象)
问题描述一个仓库具有 进货和出货两种操作,每个货物有自己的重量,最后统计仓库的总重量,货物的进与出通过终端进行交互。货物与货物之间通过链表连接,这样便于管理,类似于:代码#include "stdafx.h"#include <iostream>using namespace std;class Goods{public: Goods(int w)...原创 2019-02-17 22:00:34 · 292 阅读 · 0 评论 -
父类指针和子类指针的步长
这一节是一个主意点阅读下面代码:#include "stdafx.h"#include <iostream>using namespace std;class Father{public: Father(int a) { this->a = a; } virtual void Print() { cout << "Father...原创 2019-02-22 21:16:17 · 240 阅读 · 0 评论 -
虚函数和抽象类
文章目录定义与概念定义与概念纯虚函数:一个函数只有函数名和形参列表,没有具体实现;语法:virtual double GetArea()=0;抽象类:在C++中,含有纯虚拟函数的类称为抽象类,它不能生成对象。抽象类是不完整的,它只能用作基类。普通类继承抽象类必须实现全部纯虚函数,否则依然不能实例化,还是一个抽象类。意义:通过抽象类来构建接口,不同的子类实现接口,通过抽象类的指针来接不...原创 2019-02-22 21:49:52 · 718 阅读 · 0 评论 -
多态
文章目录多态多态定义多态举例代码多态发生的三个必要条件虚析构函数多态多态定义C++中所谓的多态是指:由继承而产生的子类,对同一消息而产生不同的行为多态举例代码#include &quot;stdafx.h&quot;#include &amp;lt;iostream&amp;gt;#include &amp;lt;string&amp;gt;using namespace原创 2019-02-21 21:53:42 · 185 阅读 · 0 评论