自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 C++类和对象2

一、隐含的this指针 1、每个成员函数都有一个指针形参,它的名字是固定的,称为this指针,this指针是隐式的。(构造函数比较特殊,没有这个隐含this形参) 2、编译器会对成员函数进行处理,在对象调用成员函数时,对象地址做实参传递给成员函数的第一个形参this指针。 3、this指针是成员函数隐含指针形参,是编译器自己处理的,我们不能在成员函数的形参中添加this指针的参数定义,也不能在

2017-07-31 16:36:21 3504

原创 C++中的继承

1、继承的相关概念: 继承是不修改已存在的类,而是采取这个已存在类的形式,并将代码加入其中的方法,是面向对象复用的重要手段。继承的语法是:在代码中和原来一样给出该类的名字,但是在左括号的前面加一个冒号和基类的名字(对于多重继承,要给出多个基类名,用逗号隔开)。(1)派生类将继承基类的数据和函数 【例】class A //基类(父类){public: void Func1(void)

2017-07-26 15:13:38 13179 1

原创 C++类和对象1

一、类的概念 类是一种复杂的数据类型,它是将不同类型的数据(成员变量)和与这些数据相关的程序(成员函数)封装在一起的集合体。这与C语言中的结构体相似。 定义一个简单的类。 【例】class Person//person为类名{public://public为访问限定符 //_name、_sex和_age是成员变量 char *_name; char *_sex;

2017-07-25 10:56:12 3089

原创 C++ 动态内存管理

1、内存分配方式 (1)从静态存储区分配,如:全局变量、static变量等。 (2)在堆栈上分配,向下增长,如:局部变量、形式参数和返回值等。 (3)从堆或自由存储空间上分配,亦称为动态内存分配,如malloc函数和new运算符申请的内存(使用free和delete释放动态内存)。2、常见的内存错误及其对策 (1)错误:内存分配未成功,却使用了它。 对策:在使用内存前检查是否有效。

2017-07-23 00:10:45 3712

原创 内存分配函数

1、函数简介: 1)malloc函数,其原型如下: void *malloc(size_t size); malloc所分配的是一块连续的内存,其参数就是需要分配的内存字节数。如果分配成功,则返回指向这块内存的指针;如果分配失败,则返回NULL指针。2)calloc函数,其原型如下: void *calloc(size_t num_elements, size_t size

2017-07-20 08:19:24 4859

转载 函数的调用过程

1、什么是栈帧?栈帧也叫过程活动记录,是编译器用来实现函数调用过程的一种数据结构。C语言中,每个栈帧对应着一个未运行完的函数。从逻辑上讲,栈帧就是一个函数执行的环境:函数调用框架、函数参数、函数的局部变量、函数执行完后返回到哪里等等。栈是从高地址向低地址延伸的。每个函数的每次调用,都有它自己独立的一个栈帧,这个栈帧中维持着所需要的各种信息。寄存器ebp指向当前的栈帧的底部(高地址),寄存器es

2017-07-18 16:35:56 3869

原创 测试机器大小端存储的方法

小端模式(Little-endian),是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致。大端模式(Big-endian),是指数据的高字节,保存在内存的低地址中,而数据的低字节,保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加

2017-07-18 16:05:37 3960

原创 C++实现一个复数类

复数类的实现中包含了众多C++的基础知识,对学习C++有很大的帮助。其中,运算符重载中的“前置++、–和后置++、–”稍微难些,需注意理解它的参数设计和返回值。#define _CRT_SECURE_NO_WARNINGS 1#include<iostream>using namespace std;class Complex{private: double _real; do

2017-07-18 12:32:58 4883

原创 C++函数重载

一、函数重载的概念: 通俗的讲:重载就是一个词有多种不同的含义。在C++程序中,将语义、功能相似的几个函数用同一个名字来表示,即为函数名重载。二、函数重载的作用: 1、函数重载便于记忆,提高了函数的易用性。 2、类的构造函数需要重载机制,C++规定构造函数必须与类名相同。 3、使得各种运算符能够支持对象语义,因为C++中运算符的语义都是固定的,而且就那么几个运算符,所以要想让同一个运算符同时

2017-07-10 17:43:05 5967

原创 C++引用

一、引用的概念: 引用不是定义一个变量,而是给一个已经定义的变量重新起一个别名。 二、引用的定义格式: 类型&引用变量名=已定义过的变量名。 如:int b = 10; int& a = b;//a是b的别名 三、引用的特点: 1)一个变量可用多个别名; 2)引用必须初始化; 3)引用只能在初始化的时候初引用一次,不能改变为再引用其他的变量。 【例】#define _CRT_SE

2017-07-08 21:11:43 3403

原创 C++命名空间

名字空间域是随标准C++而引入的,作用是解决全局命名冲突。它相当于一个更加灵活的文件域(全局域),可以用花括号把文件的一部分括起来,并以关键字namespace开头给它起一个名字: 【例】#define _CRT_SECURE_NO_WARNINGS 1# include &amp;amp;amp;amp;lt;iostream&amp;amp;amp;amp;gt;using namespace std;namespace bit1{ int n = 10;

2017-07-08 20:42:20 3514

原创 复杂链表的复制

什么是复杂链表? 复杂链表指的是一个链表有若干个结点,每个结点有一个数据域用于存放数据,还有两个指针域,其中一个指向下一个节点,还有一个随机指向当前复杂链表中的任意一个节点或者是一个空结点。要实现复制一个复杂链表,首先要知道复杂链表的结构。 复杂链表的数据结构定义如下: typedef int DataType; //数据域的类型 //复杂链表的数据结构 typedef struct Co

2017-07-05 15:05:32 3288

原创 链表的面试题

1、比较顺序表和链表的优缺点,它们分别在什么场景下使用? 1)顺序表支持随机访问,单链表不支持随机访问。 2)顺序表插入/删除数据效率很低,时间复杂度为O(N)(除尾插和尾删),单链表插入/删除效率更高,时间复杂度为O(1)。 3)顺序表的CPU高速缓冲效率更高,单链表CPU高速缓冲效率低。2、打印单向链表 void Display(pList plist) { pNode c

2017-07-05 02:23:13 3273

原创 链表的基本操作

1、类型重定义typedef int DataType;  2、结构体定义 typedef struct Node {     DataType _data;     struct Node* _next; }Node,*pNode, *pList;  3、初始化链表void InitLinkList(pList *pplist){      a

2017-07-03 18:16:14 3220

空空如也

空空如也

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

TA关注的人

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