自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

风清扬

大风起兮云飞扬

  • 博客(17)
  • 收藏
  • 关注

原创 类成员函数和函数返回值的结合使用探究

/*类型是否匹配,&不修饰类型,const修饰指针的时候参与类型返回是值的话,内置类型的话就是寄存器带出都是常量数字不能取地址,没有内存。返回的是指针的话都是一个立即数常量数字,需要用常引用返回的是引用的话,返回return后面的表达式的地址,可以用指针和引用接收都是可以*/#include#includeusing namespace std;class Test{publ

2017-11-20 13:43:01 1268

原创 const 和一级指针、二级指针、引用的结合使用总结

#include#includeusing namespace std;int main(int argc, char* argv[]){ //const int a = 10; // C++中是真正的常量,C++是强类型语言 但是在C语言中是常变量,可以通过地址修改常变量的值 //int b = a;//值传递,正确!a和b没有联系,各自独立的地址,只是值一样 //int

2017-11-20 12:09:46 738

原创 常引用的编译器实现原理

int &a = 100;//不能引用右值,因为右值没有内存。错误的表达式 //改正方法是,使用const int & c = 10; //原因是在编译器中,会产生临时量保存10 //然后对临时量地址进行引用 /* 汇编代码: const int& a = 100; 00BA5D98 mov dword ptr [ebp-18h],64

2017-11-20 12:06:24 296

原创 用typeid().name()获取类型名

#include#include//需要添加的头文件using namespace std;void main(){ //typeid().name()可以返回变量、函数、类的数据类型名,功能是相当强大的 //注意:对非引用类型,typeid().name()是在编译时期识别的,只有引用类型才会在运行时识别 const int a = 10; cout << typeid(&a)

2017-11-20 11:22:54 4311 3

原创 typedef和#define的区别

#include&lt;stdio.h&gt;void main(){ #define T int //在预处理阶段文本替换 typedef int T1;//typedef后面需要加分号结束,但是#define 不需要 unsigned T a = 10;//正确,单纯的文本替换相当于unsignede int unsigned T1 b = 100;//错误,实际上相当于int...

2017-11-19 17:22:29 193

原创 单例模式

单例模式:一个类只能生成一个对象快加载的单例模式:1、私有化构造函数2、提供对象实例的接口3、创建私有化的单例对象快加载的单例模式:class Singleton{public: static Singleton* getInstance()//2.该公有接口专门返回对象实例 { return &amp;sobj; }private: Singleton();//1.私有化构造函...

2017-11-10 16:25:42 220

原创 类中的三种函数(普通成员函数、静态成员函数、COSNT成员函数)总结

普通成员方法:1、属于类的作用域2、可以访问当前类对象的私有成员THIS3、使用时必须使用对象来调用,在最后传入的参数中有THIS指针,指向对象本身的地址4、普通对象可以调用CONST常方法和静态方法。静态成员变量:1、需要在类外初始化,且只能初始化一次2、该成员属于类的而不是对象的,所有对象共享的。static修饰的静态方法:1、属于类的作用域2、没有

2017-11-10 15:53:46 1329

原创 函数返回对象和对象的生命周期的结合

函数在返回自定义类型时,我们知道主调函数会为返回值开辟一个临时内存来存储这个返回值对象,但是在返回对象的时候也有一些特殊的情况,Main函数不会为返回的对象开辟内存。虽然在写代码的时候不会这样写,但是需要学会相关的分析,解决一些不能理解的现象:为了便于复习,写成博客。有兴趣的同行可以对以下图片无损放大查看:

2017-11-06 22:20:20 1689

原创 只有10%的程序员可以写出的没有Buy的二分查找

int search(int a[], int n , int x){ if (a == NULL || n < 1)//传入参数检查 return -1; int low = 0; int high = n-1; while (low <= high)//一个元素的时候也有可能 { int mid = (high - low ) / 2 + low ;//防止超出int的

2017-11-04 20:01:16 250

原创 OOP思想

面向对象思想:程序 = 对象 + 对象 + 对象 + 。。。+消息通信面向过程思想:程序 = 算法(函数) + 数据;面向对象的特征:抽象:用类来抽象模拟表示世界中的各类具体事物:属性 + 行为。 成员变量和成员方法 类只是描述一个实体的抽象数据类型。 封装/隐藏;访问限定符(public\protect\private)继承、多态、有什么区别?类和类之间常用的

2017-11-03 16:09:02 507

原创 对象的生存周期探究

#include#includeusing namespace std;class Test{public: Test(int a = 5, int b = 5) :ma(a), mb(b) { cout << this << " Test("<<a<<" "<<b<<")" << endl; } ~Test() { cout << this << "~Test(

2017-11-03 16:06:24 227

原创 编译器在什么情况下无法产生类的四个默认函数

当成员变量有常量、引用的时候,不能生产拷贝构造函数和默认的构造函数。因为这两个是C++唯一必须赋初始值和不能被更改的成员变量。编译器默认拷贝构造会对引用进行更改,自己写的拷贝构造函数是进行初始化

2017-11-03 15:18:27 470

原创 构造函数初始化列表

1、  初始化列表在构造函数之前执行,这个时候是进行初始化操作。而在构造函数体内是进行赋值操作。分清赋值和初始化的不同2、  对于内置类型写到初始化列表还是写到构造函数函数体都没有区别,但是对类成员对象的时候必须写到初始化列表。因为必须对成员对象进行初始化操作。3、成员初始化列表没有规定执行顺序而是按照成员变量定义的顺序进行初始化4、类中的const常量和引用变

2017-11-03 14:59:22 418

原创 函数返回值的传递

除了函数参数的传递之外,函数与调用方的另一个交互方式就是返回值。在返回不同字节大小的返回值编译器的处理方式不一样:小于4个字节:函数将返回值存储在eax寄存器中,返回调用方之后在读取eax寄存器的值大于4字节小于等于8字节:函数返回值通过两个寄存器,eax和edx存储返回后读取。大于8字节的返回值:将利用临时对象进行返回值的传递1、首先在mian函数中的栈上开辟一片额外的空间作

2017-11-02 16:50:22 3031 1

原创 函数安全

1、函数有没有进行内存的非法访问,申请的内存是否释放,否则内存占用量是否越来越大。是否存在野指针,悬浮指针。2、函数返回值的安全,禁止返回局部变量的地址或者引用。因为在函数调用堆栈的时候栈帧的回退过程中,该部分内存已经不在具有安全性,很有可能被覆盖。不然容易出现内存的非法访问3、函数的线程安全:是否可重入?是否带有线程共享的资源:全局变量、静态变量,堆内存。

2017-11-02 16:16:10 683

原创 函数重载

在C++中允许函数有相同的名字,不同的参数类型,这是一中典型的静多态。实现函数重载的条件;1、  在同一作用域下,不同作用域下同名函数谈不上函数重载2、  参数列表不同:参数个数、参数类型、参数顺序都可以确定是否可以重载3、  不能依据返回值来确定函数是否能重载4、  当const 和函数的参数结合时是否可以决定重载?一个结论:看能不能通过修改形参,来影响实参的值?如果一个函数

2017-11-02 15:49:40 236

原创 函数默认参数

C++中允许函数在定义或者声明时,设置函数的默认参数,调用时如果不指定参数的具体值则按照默认参数调用。但是需要注意一下几点:1、必须从右向左添加默认值,也就是默认值参数的右边参数都必须是默认值Void fun(int a , int b , int  c =10);//正确Void fun(int a , int b = 10, int c );//不予讯

2017-11-02 15:04:12 480

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除