![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
文章平均质量分 76
Oragen
这个作者很懒,什么都没留下…
展开
-
深入理解编译连接和运行
对于每一个程序经过编译连接生成可执行文件的过程中操作系统会为每一个程序分配一个虚拟地址空间,其大小和操作系统的位数有关(32位操作系统为4G)。这4G的空间被分为3G用户空间和1G内核空间,其中内核空间是共享的,用户空间时独立的,用户空间又有如下分布:保留区:不可访问text段:存放程序编写后的指令data段:存放初始化了的且初始值不为零的全局变量bss段:存放未初始化或初始化为零的全...原创 2018-06-16 10:18:36 · 1881 阅读 · 0 评论 -
递归解决背包问题
问题描述:有不同价值、不同重量的物品n件,求从这n件物品中选取一部分物品的方案,使得选中物品的总重量不超过指定的限制重量,但选中的物品总价值最大。揭解法描述:采用递归寻找物品的寻找方案。设前面已有多种选择方案,并保留其中总价值最大的方案与一个数组option[]中,该方案的总价值存于变量maxval中,当前正在考虑新方案,其物品选择情况存于数组cop[]中。假设当前方案已经考虑了前i-1件物品,...原创 2018-10-29 11:50:32 · 1589 阅读 · 0 评论 -
递归法的应用:求解斐波那契数列和数字的组合问题
递归:是指函数、过程、子程序在运行过程中直接或间接调用自身而产生的重入现象。采用递归编写程序能是程序变的见解和清晰。递归的用法一般为:定义是递归的:有许多数学公式、树、数列等的定义是递归的。数据结构是递归的:单链表就是一种递归的数据结构。问题的求解方法是递归的:有些问题的求解方法是递归的,典型的有Hanoi塔问题求解。但递归也有缺点,该算法解题的运算效率低,在递归调用过程中系统为...原创 2018-10-23 10:41:30 · 847 阅读 · 0 评论 -
解析C++隐藏与覆盖
在学习C++的继承与多态过程中我们接触到了隐藏与覆盖的概念,那么隐藏和覆盖分别做了些什么?在C++的继承中我们知道派生类可以继承基类的成员变量和成员函数,那么当派生类继承基类的成员变量和成员函数时自己也有同名的成员变量和同名且同参数列表的成员函数时是如何处理的呢?遇到这类情况C++的处理方式为隐藏和覆盖,下面就来介绍隐藏和覆盖。隐藏派生类将继承的基类的同名的成员变量和成员方法隐...原创 2018-08-28 18:55:10 · 9175 阅读 · 3 评论 -
多态实现的机制
什么是多态?多态是C++编程时的一种特性,多态性即是对一个接口的多种实现。多态可以分为静多态和动多态。所谓静多态就好比函数重载、模板,静多态是在函数编译阶段就决定调用机制,即在编译连接阶段就将函数的入口地址给出。而动多态是在程序运行的时候才决定调用机制。下面我们主要来讨论动多态。首先来了解一些多态的基本知识:在类中用virtual关键字声明的函数叫做虚函数。存在虚函数的类都有一...原创 2018-08-28 10:47:35 · 2009 阅读 · 0 评论 -
浅谈malloc和new及他们的区别
malloc()函数malloc的全称是memory allocation,中文叫动态内存分配。原型:extern void *malloc(unsigned int num_bytes); 说明:分配长度为num_bytes字节的内存块。如果分配成功则返回指向被分配内存的指针,分配失败返回空指针NULL。当内存不再使用时,应使用free()函数将内存块释放。void *malloc(...转载 2018-08-03 01:09:35 · 15156 阅读 · 2 评论 -
const关键字作用
const关键字的作用可以分为以下几类:const与普通内置类型结合、自定义类型结合const与指针/引用的结合const与函数参数的结合const与函数返回值的结合const修饰类的成员函数const和内置类型、自定义类型的结合const可以和char、int、double、float、long、long long相结合,也可以和自定义类型class、struct相结合...原创 2018-08-02 10:32:46 · 686 阅读 · 0 评论 -
C\C++static关键字的用法总结
static关键字的作用主要起隐藏作用static关键字在C\C++中都可以修饰内置类型变量、函数static修饰内置类型变量为静态变量:static修饰的内置类型变量分为静态全局变量和静态局部变量,静态变量内存分配在 .data段,生成的符号为local类型的符号,在链接阶段进行符号解析时不做处理。静态变量只初始化一次,未初始化的静态变量会默认初始化为0。静态全局变量只在本文件可见,...原创 2018-08-02 00:54:59 · 10808 阅读 · 0 评论 -
C/C++编程mysql接口大全
做C++ 开发时,使用MySQL 数据库的时候 难免 会发生不知道数据库的接口的问题 下面是mysql数据库的一些接口mysql_affected_rows() 返回被最新的UPDATE, DELETE或INSERT查询影响的行数。mysql_close() 关闭一个服务器连接。mysql_connect() 连接一个MySQL服务器。该函数不推...转载 2018-08-04 12:12:38 · 1027 阅读 · 0 评论 -
智能指针的实现原理及使用
C/C++的内存管理比较繁琐,在使用C++编程时经常从堆上申请内存(new),当使用完毕后我们需要将申请的内存归还(delete)。一般情况下我们申请一次就得释放一次,即new多少内存就delete多少。所以在C++中new和delete是成对出现的。但是当我们申请(new)了一部分内存而在释放(delete)之前程序返回或没有执行到delete处程序抛出异常结束了,那么我们申请的内存就无法归还给...原创 2018-08-03 18:39:03 · 560 阅读 · 0 评论 -
类和对象基础知识
首先我们来了解一下OOP(面向对象)思想的最重要的特性:对象和类封装和数据隐藏继承多态本文介绍对象和类,在我们初学C++语言时有关对象和类的理解是相对模糊的(我也是过度了一段时间才理解过来)。类是什么?C++中的类是一种将抽象转换为用户定义类型的C++工具,它将数据表示和操作数据的方法组合成一个整洁的包,通过class关键字来定义一个类。在类中的数据类型被分为三种形式:...原创 2018-07-19 20:40:24 · 155 阅读 · 0 评论 -
const用法详解
首先我们来了解一下现在所学的C标准,分别是C89、C99和C++99,C89标准的C语言中的const和C++中的const是有区别的,而在C99标准的C语言中是相同的。我们目前所学的C语言标准为C89标准。const修饰的量为一个常量即不能被修改的量。但在C语言(C89)中的const可以不初始化但后续也就无法对其赋值,所以尽管不初始化不会出错,但要使用const修饰的量就需要对其进行初始...原创 2018-06-19 15:43:41 · 72750 阅读 · 6 评论 -
解析函数的堆栈调用过程
关于函数的调用堆栈有如下几个问题:函数调用函数的栈桢开辟及回退过程是什么?主调函数在调用被调函数的中间过程做了什么?被调函数执行完成后是怎样回到主调函数的?在回到主调函数后是怎么知道要运行哪一条代码(指令)?要解决这些问题,我们就要从汇编的角度切入。通过汇编代码能够使我们更加清晰地掌握函数的堆栈调用。 汇编分为两种形式inter x86 (从右向左看) 和 AT&...原创 2018-06-17 12:50:22 · 809 阅读 · 0 评论 -
递归法的应用:求解汉诺塔问题
题目描述:汉诺塔问题是一个经典的问题,其来源据说在19世纪末欧洲的商店中出售一种智力玩具,在一块铜板上有三根杆,最左边的杆自上而下、由小到大顺序串着64个圆盘构成的塔,游戏的目的是将左边A杆上的圆盘借助最右边的C杆,全部移动到中间的B杆上,条件是一次仅能移动一个盘,且不允许大盘放在小盘上面,问最少需要移动多少次。解法描述:我们可知限制条件为:一次只能移动一个盘,且不允许大盘放在小盘上面。...原创 2018-10-24 18:35:10 · 2043 阅读 · 0 评论