C++之静态成员变量和静态成员函数学习总结(二)

说明,这里静态成员变量不能使用初始化列表去初始化,这里要明白上面说的那句话:静态成员变量需要在类外单独分配空间,换句话说,就是只有在类的外部重新定义静态成员变量才可以存储到静态存储区。报错如下:root@txp-virtual-machine:/home/txp# g++ test4.cpptest4.cpp: In constructor ‘Test::Test()’:test4.cpp:7:10: error: ‘int Test::mCount’ is a static data member; it can only be initialized at its definition  ......阅读全文

C++之静态成员变量和静态成员函数学习总结(二)

说明,这里静态成员变量不能使用初始化列表去初始化,这里要明白上面说的那句话:静态成员变量需要在类外单独分配空间,换句话说,就是只有在类的外部重新定义静态成员变量才可以存储到静态存储区。报错如下:root@txp-virtual-machine:/home/txp# g++ test4.cpptest

C++之静态成员变量和静态成员函数学习总结(三)

3、静态成员函数 vs  普通成员函:静态成员函数普通成员函数所有对象共享YesYes隐含this指针NoYes访问普通成员变量(函数)NoYes访问静态成员变量(函数)YesYes通过类名直接调用YesNo通过对象名直接调用YesYes4、版本代码四:#include <stdio.h>class

C++之静态成员变量和静态成员函数学习总结(一)

上图的板子有最近买的,也有以前买的(stm32、esp8266、51、eps32、小熊派、合宙的cat1、树莓派3b+);说实话,这些板子买来,一直放在那里吃灰,后期自己的方向也不玩硬件开发板啥的;所以上面的板子都送给了公众号读者在校生,让这些板子发挥它们最大的价值,板子也会在最近慢慢一一送出去;赠

C++之操作重载符学习总结(二)

运行结果:上面设计到一些数学知识,比如复数的乘法和除法运算:乘法:(a+bi)(c+di)=(ac-bd)+(bc+ad)i除法:(a+bi)/(c+di)=(ac+bd)/cc+dd +(bc-ad)/cc +dd3、注意事项:C++规定赋值操作符"="只能重载为成员函数操作符重载不能改变原操作符

C++之操作符重载学习总结(二)

4、再次改进代码:可以将操作符重载函数定义成为类的成员函数(前面我们学过,友元现代软件开发不允许):比全局操作符重载函数少一个参数(左操作数,成员函数中隐藏的 this 参数可以充当左操作数的角色)不需要依赖友元就可以完成操作符重载编译器优先在成员函数中寻找操作符重载(一旦在成员函数中找到,就不会去

C++之字符串类学习总结(二)

三、字符串与数字的转换:标准库中提供了相关的类对字符串和数字进行转换字符串流类(sstream)用于string的转换相关头文件istringstream字符串输入流ostringstream字符串输出流1、方法使用string---数字数字---string代码示例:输出结果:2、字符串循环右移比

C++之继承中的构造和析构学习总结(二)

代码实践:输出结果:注解:我们可以看到,先定义了一个Child对象,然后最先访问Object带参构造函数,然后再是Parent带参构造函数(说白了就是父类先触发),然后在子类Child中又包含了组合关系(也就是客人),然后Object类中的带参构造函数,最后再触发自身的带参构造函数。二、子类对象的析

C++之操作重载符学习总结(一)

一、完善的复数类:在上一篇文章里面我们已经提到了操作符重载的概念和使用,同时也举例了一个数学里面的复数操作,从一开始使用友元到使用操作符重载全局函数,再到使用操作符重载类成员函数,这样一步步演变而成我们最终实现了复数的实部加实部,虚部加虚部;而且当时我们只讲解了一个操作重载符“+”,所以为了完善学习

C++之函数模板的概念和意义(二)

输出结果:root@txp-virtual-machine:/home/txp# ./a.outa= 5b= 2m= 4n= 6d= Txpt= xiaoping注解:同样实现了交换功能。2、两种方法的优缺点:定义宏代码块-优点:代码复用,适合所有的类型-缺点:编译器不知道宏的存在,缺少类型检查定义

C++之操作符重载学习总结(一)

一、操作符重载:1、我们先来看一个问题实现,下面的复数解决方案是否可行,复数大家应该都不陌生(分为实部和虚部):代码版本一:运行结果:这里通过Add函数可以解决Complex对象相加的问题,但是在我们数学运算里面就是直接实部加实部,虚部加虚部,和正常的实数相加一样,所以说,为什么不直接这样操作呢,这

C++之字符串类学习总结(一)

一、回顾c语言对字符串的实现:一般我们在c语言要实现对字符串操作的话,一般是采用字符数组或者一组函数来实现的,为啥这样做呢,那是因为c语言里面根本就没有字符串类型的关键字;而且c语言也支持自定义类型,所以更加无法获得字符串类型。为了解决这个问题,在c++中,引入了自定义类型,而且可以通过类来完成对字

C++之继承中的构造和析构学习总结(一)

在我们前面学习过类中的构造函数,以及析构函数,那么自然而然,在继承关系中,必然是存在着析构和构造着。一、子类对象的构造1、问题的引出如何初始化父类成员?父类构造函数和子类构造函数有什么关系?2、子类中的构造函数怎样初始化父类成员:子类中也是可以定义构造函数的:--必须对继承而来的成员进行初始化,那么

静态破碎剂的总结

通过对静态破碎剂破岩机理的研究, 认为将静态破碎剂应用于煤矿井下地质构造处理方面具有很大前景, 对于地质构造的处理是一次极大的技术革新。需解决的主要问题是:(1) 从破岩机理出发, 开发适用于煤矿井下的高效能静态破碎剂, 使其在操作上、反应时间、压力大小及释放过程符合要求;(2) 开发和改进破碎剂搅

C++之拷贝构造函数的浅copy和深copy(二)

(3)注意:在写程序的时候,定义的类对象初始化时看属于哪种类型的:Test t;//对应无参构造函数Test t(1);//对应有参构造函数Test t1;Test t2=t1;//对应拷贝构造函数比如下面我定义的类对象属于无参构造函数(当然前提是你手写了其他构造函数,虽然说编译器会默认提供,但是既

C++之类的继承关系学习总结(二)

二、类的继承关系:说到这个继承,你可以把它类比成生活当中的父亲和儿子,儿子继承的父亲的长相特征。那么在我们面向对象中继的承又是指什么呢?1、面向对象中的继承是指类之间的父子关系子类拥有父类的所有属性和行为子类就是一种特殊的父类子类对象可以当作父类对象使用子类中可以添加父类中没有的方法和属性2、继承代

C++之类的继承访问级别学习总结(二)

代码实现#include <iostream>#include <string>using namespace std;class Parent{protected:    int mv;public:    Parent()    {        mv = 100;    }        in

C++之友元的学习总结

一、友元的概念:1、什么是友元?友元是c++中的一种关系友元关系发生在函数与类之间或者类与类之间友元关系是单项的,不能传递2、友元的用法:在类中以friend关键字声明友元类的友元可以是其它类或者具体函数友元不是类的一部分友元不受类中访问级别的限制友元可以直接访问具体类的所有成员3、友元的语法:在类

C++之函数模板的概念和意义(一)

一、函数模板的引出:1、c++中有几种交换变量的方法:(1)定义宏代码块(2)定义函数代码版本一:#include <iostream>#include <string>using namespace std;#define SWAP(t,a,b)   do                    {

C++之函数模板的概念和意义(三)

以下是选择排序算法测试代码   int array[5]={3,5,6,4,9};   Println(array,5);   Sort(array,5);   Println(array,5);   string s[5]={"c","c++","rust","golang","python"}

C++之类型转换函数(二)

输出结果:root@txp-virtual-machine:/home/txp# ./a.outd =-200ui= 100(ui+i) = 4294967196Postive注解:通过打印(ui+i)的值我们发现,i原本是int数据类型,这里隐式转换成无符号的数据类型了为了让大家更加理解隐式的转换

碾米仪器成员之精米机

    所谓民以食为天,且全世界大部分都是以粮为主食,如今随着社会的快速发展,经济水平的不断提高,人们都在往高品质的生活领域靠近,随之对自己的主食的质量也是有了更多的要求。然而如何生产高品质,高质量的粮食成为各界人士纷纷议论和探索的主题。值得一提的是,由杭州麦哲仪器有限公司研发人员经过多次商讨和实验

C++之拷贝构造函数的浅copy和深copy(一)

一、深拷贝和浅拷贝构造函数总结:1、两个特殊的构造函数:(1)无参构造函数:没有参数的构造函数Class Test{ public:     Test()     {       //这是一个无参构造函数     }};当类中没有定义构造函数时,编译器默认提供一个无参构造函数,并且其函数体为空;换句

C++之拷贝构造函数的浅copy和深copy(三)

输出结果:root@txp-virtual-machine:/home/txp# g++ test.cpproot@txp-virtual-machine:/home/txp# ./a.outt1.i = 2, t1.j = 3, t1.p = 0x1528010t2.i = 2, t2.j = 3

C++之拷贝构造函数的浅copy和深copy(四)

输出结果:root@txp-virtual-machine:/home/txp# g++ test.cpproot@txp-virtual-machine:/home/txp# ./a.outt1.i = 2, t1.j = 3, t1.p = 0xb0a010t2.i = 2, t2.j = 3,

C++之类模板的深入学习总结

一、类模板的深入学习:1、类模板可以定义任意多个不同的类型参数(这一点和模板函数一样)template < typename T1, typenaem T2 >class Test{public:    void add(T1 a, T2 b);}//定义类对象时Test2、类模板可以被特化指定类模

C++之类的继承访问级别学习总结(三)

4、定义类时访问级别的选择:注解:从图中我们可以发现,当有发生继承关系时,就考虑使用protect关键字5、组合和继承的综合运用说明:Object这个类是被用来继承的;Line和Point两个类进行组合。代码示例:#include <iostream>#include <string>#includ

C++之类的继承访问级别学习总结(一)

一、继承中的访问级别学习:1、子类是否可以直接访问父类的私用成员吗?从面向对象理论角度来看:子类拥有父类的一切属性和行为,也就是说,子类能够直接访问父类的私有成员。从c++的语法角度看:外界不能直接访问类的private成员,也就是说,子类不能直接访问父类的私用成员。代码示例:#include <i

C++之类的继承访问级别学习总结(四)

输出结果:root@txp-virtual-machine:/home/txp# ./a.outObjectPointP(1, 2)LineLine from P(1, 2) to P(5, 6)二、总结:面向对象中的访问级别不只是public和privateprotected修饰的成员不能别外界所

C++之类的继承关系学习总结(一)

一、类的组合关系:1、整体与部分的关系组合关系,从字面上来理解的话,就是谁也离不开谁,必须相互组合在一起才行,例如我们生活当中的电脑组成:代码示例:#include <iostream>#include <string>using namespace std;class Memory{public:

静态破碎剂

随着膨胀压力的增大, 岩石的破碎发展过程如下: 裂缝的发生、发展、张开幅度的增大, 这是与普通炸药破岩机理的区别。假设在无限大的弹性体内有一孔, 该孔半径 , 内壁作用压力, 此时任意半径处的径向拉伸应力 、切向拉伸应力。当拉伸应力超过被破碎体的抗拉强度时,被破碎体便产生裂纹进而导致破碎。由于破碎剂