摘要: this指针,指向当前对象; 本质上是一个常指针,Test *const this,地址不能修改,指向的内容可以修改; 要想保证this指针指向的内容也不可以被修改,需要在成员函数尾部加const,代表修饰this指针,即const Test *const this; static成员函数只能返回s 阅读全文
posted @ 2018-12-03 16:26 zarjen 阅读(146) 评论(0) 推荐(0) 编辑
摘要: static变量和函数 静态成员变量不在对象的内存区,在静态区,a56爆大奖在线娱乐sizeof()时计算不包含静态变量的大小; 类中的函数也不在对象中。 练习: 阅读全文
posted @ 2018-12-02 22:15 zarjen 阅读(484) 评论(0) 推荐(0) 编辑
摘要: C++中new和delete是运算符,不是函数,执行效率高。 C语言中malloc()和free()是函数,标准库stdlib.h中。 new会在堆上初始化一个对象时会触发对象的构造函数,malloc不能。 delete会触发对象的析构函数,free不能。 delete释放的是对象的空间,析构函数释 阅读全文
posted @ 2018-12-02 17:04 zarjen 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 构造函数参数初始化列表 当类中的成员包含对象时,在定义构造函数初始化成员需要使用初始化列表将对象成员初始化,如下段代码中的m_a1和m_a2; 构造对象成员的顺序与初始化的顺序无关,与对象成员的定义顺序有关; 如果类的成员中包含常量,如const int m_c,那么构造函数初始化参数时必须使用初始 阅读全文
posted @ 2018-12-02 16:18 zarjen 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 1、浅拷贝 实例代码如 1 #define _CRT_SECURE_NO_WARNING 2 #include <iostream> 3 #include<cstdlib> 4 上面代码运行会报错,原因是,浅拷贝中t2的char *name与t1的指向同一个堆中地址,(后构造的先析构)当t2调用完毕 阅读全文
posted @ 2018-12-01 21:27 zarjen 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 1、构造函数和析构函数 2、拷贝构造函数 3、 应用场景 对象作为形参,传值时也是调用拷贝构造函数,下图中,当调用func(t1)时,实际上是Test t = t1,这是一个拷贝构造函数调用。 3.1 如果函数返回值是用一个对象接收的,那么会发生一个值拷贝,通过拷贝构造函数创建一个匿名对象。如下有函 阅读全文
posted @ 2018-12-01 20:27 zarjen 阅读(1465) 评论(0) 推荐(0) 编辑
摘要: 内联函数,关键字inline,放在函数最前面修饰。 宏函数,预处理器处理,进行简单的a56爆大奖在线娱乐替换,没有任何编译过程。 阅读全文
posted @ 2018-11-29 22:26 zarjen 阅读(611) 评论(0) 推荐(0) 编辑
摘要: 1、C++中命名空间的作用 变量或数据类型重名时,可以定义不同命名空间(作用域),然后再引用变量或数据类型。 namespace spaceA{ int abc; } 可以这样引用变量spaceA::abc,using spaceA::abc,using namespace spaceA。 2、C语 阅读全文
posted @ 2018-11-29 18:20 zarjen 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 彩色图像转为灰度图像: 1.三个颜色通道像素值加和取均值(B+G+R)/3; 2.三个通道按照公式:r*0.299+g*0.587+b*0.114 计算效率:定点大于浮点,+- > */,移位(左移<<为乘,右移>>为除)大于乘除,a56爆大奖在线娱乐算法优化如下图: 注:浮点型转成整型会存在误差,右图为实现马赛克 阅读全文
posted @ 2018-11-24 22:12 zarjen 阅读(415) 评论(0) 推荐(0) 编辑
摘要: 一、C语言的常量是可以通过地址进行修改的;而C++的常量是不可修改的,且在定义的时候必须初始化! 可引用常量的地址,但只是临时地址: const int a = 10 ; int *b = (int*)&a ; //开辟临时地址给a,实际并不能访问a的地址,它在符号表中,不可修改 宏是在预编译阶段( 阅读全文
posted @ 2018-11-24 12:33 zarjen 阅读(772) 评论(0) 推荐(0) 编辑