![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程c ;c++
文章平均质量分 64
zhang1308299607
硬件不够 软件优化
展开
-
c++多态下的继承
什么是多态?给定一个函数接口,实现多种不同的功能。c++的多态分为两种静态多态:在函数的编译器就决定了调用哪种调用。(静态绑定) 动态多态:在函数运行期间决定调用哪种方法。实现多态的两个条件:1基类中必须要有虚函数,派生类中必须要重写虚函数。 2用基类的指针或者引用去调用虚函数。#include<iostream> using namespace std; class A原创 2017-07-27 14:15:52 · 619 阅读 · 0 评论 -
模拟实现string 增删查改 比较大小
要求:模拟实现c++库函数里面string的部分功能,实现增删查改,比较预算符的重载#ifndef __MySTRING_H__#define __MYSTRING_H__#define _CRT_SECURE_NO_DEPRECATE 1#include#include#include#includeusing namespace std;class String{原创 2017-07-12 17:55:36 · 393 阅读 · 1 评论 -
单链表基础面试题
1.比较顺序表和链表的优缺点,说说它们分别在什么场景下使用? 2.从尾到头打印单链表 3.删除一个无头单链表的非尾节点 4.在无头单链表的一个节点前插入一个节点 5.单链表实现约瑟夫环 6.逆置/反转单链表 7.单链表排序(冒泡排序&快速排序) 8.合并两个有序链表,合并后依然有序 9.查找单链表的中间节点,要求只能遍历一次链表 10.查找单链表的倒数第k个原创 2017-06-11 22:42:54 · 332 阅读 · 0 评论 -
c++复数类
写一个简单的类完成默认函数和简单的运算符重载1.完成四个默认成员函数 2.比较运算符 3.前置后置++和+/+=的实现 #ifndef __COMPLEX_H__#define __COMPLEX_H__#define _CRT_SECURE_NO_DEPRECATE 1#include#includeusing namespace std;class Co原创 2017-07-02 16:34:59 · 450 阅读 · 0 评论 -
单项链表的实现
mylist.h#define _CRT_SECURE_NO_DEPRECATE 1#pragma once#include#include#include#includetypedef int DataType; typedef struct ListNode { DataType data; struct ListNode* next; }ListNode;原创 2017-06-09 15:55:09 · 273 阅读 · 0 评论 -
c++基础
1.命名空间 2.C++基本的输入输出流3.重载(C++为什么支持重载?) 4.C++缺省参数 5.指针和引用(概念、使用方法、做参数、做返回值的作用,指针和引用的区别) 1.命名空间 namespace 相当于一个更加灵活的文件域(全局 域),可以用花括号把文件的一部分括起来,并以关键字namespace开头给它 起一原创 2017-06-18 16:01:23 · 283 阅读 · 0 评论 -
链表面试题 进阶 二
一:1寻找两条链表里面的相同元素 2寻找两条连表里面不同的元素 (都不考虑带环问题)二:复杂链表的复制。一个链表的每个节点,有一个指向next指针指向下一个节点,还有一个random指针指向这个链表中的一个随机节点或者NULL,现在要求实现复制这个链表,返回复制后的新链表。 //ps: 复杂链表的结构 struct ComplexNode { int _d原创 2017-06-16 20:29:40 · 289 阅读 · 0 评论 -
qsort简单解析
编译器函数库自带的快速排序函数。使用qsort()排序并用 bsearch()搜索是一个比较常用的组合,使用方便快捷。qsort 的函数原型是void qsort(void*base,size_t num,size_t width,int(__cdecl*compare)(const void*,const void*));各参数:1 待排序数组首地址 2 数组中待原创 2017-05-11 16:23:15 · 1399 阅读 · 0 评论 -
指针 指针数组 指针数组的指针 数组指针 数组指针的数组 函数指针 指向函数指针数组的指针
指针 指针数组 指针数组的指针 数组指针 数组指针的数组 函数指针 函数指针数组 指向函数指针数组的指针原创 2017-05-24 22:30:26 · 4256 阅读 · 6 评论 -
把整形数转化为二进制数输出并计算其中一的个数 怎么把负数转化为二进制数?
计算一个数二进制中一的个数,并把这个数对应的二进制序列输出。原创 2017-03-19 17:42:46 · 1989 阅读 · 0 评论 -
c++string的深拷贝
在c++中当我们想要去拷贝一个字符串的时候就会存在两种方式:1 浅拷贝方式 2深拷贝方式浅拷贝:所谓的浅拷贝就是让当前的指针指向一块已存在的区域,和其他指针共享同一块地址空间浅拷贝所带来的问题是当程序结束的时候,对象d1和d2都会去调用析构函数清零这个快空间,而一块空间析构两次可能就会导致程序崩溃。(这里暂不考虑写时拷贝)深拷原创 2017-07-10 18:59:59 · 10319 阅读 · 3 评论 -
日期计算器
#ifndef __DATE_H__#define __DATE_H__#define _CRT_SECURE_NO_DEPRECATE 1#include#includeusing namespace std;class Date{public: Date(int year=1900, int month=1, int day=1) { this->_year =原创 2017-07-03 20:40:57 · 9709 阅读 · 0 评论 -
类 和 对象 默认成员函数
类:class(数据+函数) 类是一种复杂的数据类型,它是将不同类型的数据和与这些数据相关的操作封装在一起的集合体。这有点像C语言中的结构,唯一不同的就是结构没有定义所说的“数据相关的操作”,“数据相关的操作”就是我们平常经常看到的“方法”,因此,类具有更高的抽象性,类中的数据具有隐藏性,类还具有封装性。 1. public成员可从类外部直接访问,pri原创 2017-06-30 09:02:25 · 402 阅读 · 0 评论 -
c++继承
继承:继承是实现复用的重要手段,共享公有的东西,然后实现各自不同的东西。画个图说明下我理解的继承:我们把上图的类A叫做基类(父类),把类B叫做派生类(子类)。从图中可以看出,类B在继承了类A后拥有了类A的资源。继承的关系分为三类:public: 共有继承Protected:保护继承private:私有继承这三种关系和类中的三种成员访问限定符一一对应。每一种继原创 2017-07-24 13:15:09 · 301 阅读 · 0 评论 -
c++如何防止一个类被其他类继承
如何在防止一个类被其他的类继承呢?如果是仅仅为了达到这个目的可以直接把这个类的构造函数设置成私有的,这样就杜绝了其他类的继承。也相当于毁掉了这个类(无法再创造出自己的对象)。那么怎么样既要保证这个类的完整性,又防止其他类的继承呢?这就要借助友元来实现,因为友元是不可以被继承的。如果一个类的构造函数要借助它的友元类,那么继承了这个类的类就无法构造自己的对象。从而杜绝了被继承。#include <i原创 2017-07-25 23:44:56 · 3122 阅读 · 0 评论 -
模板 vector list
vector#define _CRT_SECURE_NO_DEPRECATE 1#include<iostream>#include<assert.h>using namespace std;template<class T>class Vector{public: Vector() :_data(new T[3]) ,_size(0)原创 2017-08-03 10:44:39 · 340 阅读 · 0 评论 -
c++顺序表与双向链表实现
之前实现过c语言版本的顺序表和单向链表,现在实现c++版本的顺序表和双向链表:再来看一下顺序表,单链表和双向链表的区别:顺序表的c++实现:#define _CRT_SECURE_NO_DEPRECATE 1#include#include#includeusing namespace std;typedef int Datatype;class SeqList原创 2017-07-22 10:14:23 · 442 阅读 · 0 评论 -
链表面试题 进阶
1.判断单链表是否带环?若带环,求环的长度?求环的入口点?2.判断两个链表是否相交,若相交,求交点。(假设链表不带环)3.判断两个链表是否相交,若相交,求交点。(假设链表可能带环)【升级版】原创 2017-06-14 09:21:23 · 326 阅读 · 0 评论 -
动态内存管理
c语言动态内存管理: 开辟空间:malloc calloc realloc 释放空间:free(ptr);void test(){ int* ptr1 = (int*)malloc(sizeof(int)); //开辟四个字节的空间 int* ptr2 = (int*)calloc(4,sizeof(int)); /原创 2017-07-04 18:09:59 · 264 阅读 · 0 评论 -
写时拷贝
什么是写时拷贝? 首先先说浅拷贝,就是拷贝的时候让当前的指针指向一块已存在的区域,和其他指针共享同一块地址空间。简单的浅拷贝所带来的问题是当程序结束的时候,对象d1和d2都会去调用析构函数清零这个快空间,而一块空间析构两次可能就会导致程序崩溃。(深浅拷贝参考http://blog.csdn.net/zhang1308299607/article/details/74933134)原创 2017-07-13 18:04:49 · 369 阅读 · 0 评论 -
堆栈在函数运行时的简单解析
写一个简单的求和函数简析堆栈在函数运行时所做的工作。原创 2017-04-21 16:18:50 · 1950 阅读 · 1 评论 -
折半查找
折半查找的具体程序原创 2017-03-26 00:03:34 · 320 阅读 · 0 评论 -
猜数字小游戏
这是一个有趣的猜数字小游戏,很有趣。其中利用了rand()函数的功能。要注意rand函数的放置位置,放置不佳,随机数的刷新可能会导致游戏猜数字有问题。还有就是本次编程是我第一次采用结构化编程,如果有什么欠妥的地方还请指出。原创 2017-03-25 23:42:42 · 1334 阅读 · 0 评论 -
简单的数组元素交换 调试的重要性
这个见到那的数组元素交换折腾了我俩小时,并不是因为这个问题有多难,而是因为我在写判断条件的时候把i写成了1,检查了好久也没看出来。哎,自己写的程序就像亲儿子,咋看咋顺眼。就是找不出错误! 这次折腾的我开始使用调试,尽管还不太熟练,多练练肯定能掌握技巧。#includeint main(){int arr1[5] = {1,2,3,4,5}; int arr2[5]原创 2017-03-21 14:15:30 · 362 阅读 · 1 评论 -
把一个十进制转化为二进制数并且把二进制数的奇数位偶数位分别输出
二进制按奇偶位输出原创 2017-03-23 11:15:17 · 949 阅读 · 1 评论 -
sizeof 与strlen 在求解字符数组和字符串时的注意事项
昨天编程的时候遇到了一个小问题,因为一时没有相同苦恼很久。恰好今天学姐考了我一个小问题,让我又把这个问题思考查阅了一番。现在跟大家分享一下。char arr1[]={'a','b','c'};char arr2[]="abc";请问这俩字符串数组用sizeof求解的大小是多少?这是为什么呢? 因为arr2[]="abc"其末尾还包括了一个\0.在计算的时候把这个\0原创 2017-03-30 17:43:23 · 440 阅读 · 0 评论 -
求两个数最大公约数 并简单解析system(pause)和getchar()的区别
#include今天在写程序的时候遇到了一个很隐蔽的问题,以往我常在程序结尾加getchar()让程序停下来。今天在写程序的时候突然不管用了,然后我尝试了另一种方法,使用了个system(“PAUSE”),问题就这样解决了。简单说一说两种方法的区别。system(“PAUSE”)是让程序强制停下来很强势,毫不讲理。而getchar()是让你是输入一个字符,而我们程序中时常回使用scanf()函原创 2017-03-21 19:38:24 · 764 阅读 · 1 评论 -
模拟输入密码登陆时的场景
这是之前太忙没来得及写的一段代码,模仿我们登陆某个软件时输入密码的场景。这个代码并没有花很长的时间,程序运行也是按思路走的。意外出现在程序结束退出时报错。因为之前没考虑过这方面的知识,所以反倒是结尾工作花了时间。 我定义了一个password[ ],因为我原始密码只有四位,所以password也就只给了四位。但是实际上如果不是第一次就输入正确,password内存就小了,因为之前的错误密码占用了p原创 2017-03-26 15:22:32 · 1602 阅读 · 0 评论 -
用宏写一个函数交换一个数的奇偶位 并简析宏与函数调用
函数的目的是写一个宏,实现一个数的二进制奇偶位的交换。代码如下:#define _CRT_SECURE_NO_DEPRECATE 1#include#include#define EXCHANGE(input)\ (((input)&(0x55555555))>1)int main(){ int input; printf("请输入一个数: "); scanf("%原创 2017-04-12 14:42:06 · 862 阅读 · 0 评论 -
冒泡排序
冒泡排序原创 2017-04-02 19:08:23 · 352 阅读 · 0 评论 -
字符串操作函数解析
在编程的时候我们经常会用到一些库函数来操作字符串,例如strcmp,strlen,strcat, strstr, strcpy, strchar , memcpy, memmov, memset 接下来我们就看一看这些函数。 1 strcmp: 从msdn的解释中可以看出字符串比较这个函数有两个参数string1和string2,而原创 2017-05-01 14:02:24 · 2871 阅读 · 0 评论 -
可变参数列表 va_list
可变参数列表,指的是函数的参数个数是可变的,但我们写一个子函数实现某个功能的时候,我们通常通过实参和形参的形式把参数传递給子函数。而可当我们使用va_list变参数列表的时候形参和实参的传递就变得相对灵活了。我们通过两个简单的函数比较二者区别。常规的实参形参一一对应的形式相信大家都烂熟于心了,这里就不写了。我们来看看用可变参数列表写的求和还有找最值。#define _CRT_SECURE_原创 2017-05-01 09:50:27 · 1062 阅读 · 0 评论 -
Sizeof与Strlen的区别与联系
简单说明sizeof和strlen的区别转载 2017-03-29 21:35:20 · 213 阅读 · 0 评论 -
main函数的参数
在之前的学习中很少注意到main函数的参数问题,因为在平时写函数的时候都是写一个main()这样就结束了,根本没有往里面写参数。然而没有写并不代表没有参数。我们来看看msdn里面对mian函数的描述从这里面我们可以看出来其实main函数是包括三个参数的 也就是 argc *argv[] *envp[]。 argc : 命令行参数个数 *argv[] : 命令原创 2017-04-30 20:10:44 · 346 阅读 · 0 评论 -
三子棋小游戏
三子棋小游戏原创 2017-04-05 14:22:00 · 1216 阅读 · 0 评论 -
扫雷小游戏
模仿window里面的经典扫雷小游戏。原创 2017-04-13 00:00:41 · 2302 阅读 · 0 评论 -
sizeof 和 strlen 在求解数组 字符数组 字符串 二维数组时候的小结
sizeof 和 strlen 在求解数组 字符数组 字符串 二维数组时候的小结原创 2017-04-04 10:28:59 · 3570 阅读 · 0 评论 -
用符号显示菱形图案
符号显示图形 数组替换 有趣的编程题目原创 2017-03-28 13:57:09 · 3847 阅读 · 1 评论