c++
文章平均质量分 71
ykersimple
半步钻石
展开
-
c++实现贪吃蛇
c++面向对象实现控制台贪吃蛇学习了c++面向对象方面的知识,闲着无聊写了贪吃蛇,主要由下面几个类组成:MAP类实现地图的渲染蛇类实现蛇的初始化,渲染,行走,吃食物等行为*食物类实现食物的初始化及生成point类实现坐标类工具函数包括光标移动,控制台设置,随机数生成等代码:MAP类class Map{public: void initiali...原创 2018-05-19 10:29:18 · 2116 阅读 · 4 评论 -
c++入门
c++语言的历史和标准化1979年4月,贝尔实验室的Bjarne Stroustrup(本贾尼·斯特劳斯特卢普)博士等人负责分析UNIX内核,但当时没有合适的工具能够有效地分析由于内核分布而造成的网络流量,将内核模块化,因此他们的工作进展缓慢。1979年10月,Bjarne Stroustrup为C语言增加了类似于Simula语言的类机制并设计开发了一个预处理器Cpre,来处理这些添加的元素和C...原创 2019-05-31 11:44:06 · 150 阅读 · 0 评论 -
类与对象
类的定义 class为定义类的关键字,ClassName为类的名字,{}; 中为类的主体 类中的元素称为类的成员,类中的数据称为成员变量或属性;类中的函数称为成员函数或者类的 方法类的两种定义方式声明和定义全部放在类体中 注意: 成员函数在类中定义, 默认内联声明放在.h文件中, 类的定义放在.cpp文件类的访问限定符及封装public修饰的成员在类外直接被访问p...原创 2019-05-31 11:46:32 · 127 阅读 · 0 评论 -
类与对象补充
构造函数在efftivec++中有一个准则是,在一个对象实例化之前应该对其所有成员变量初始化构造函数体中的语句只能将其称为赋初值,而不能称之为初始化。因为初始化只能一次,而构造函数体内可以多次赋值初始化列表特征:以一个冒号开始,接着是一个以逗号分隔的数据成员列表Date(int year, int month, int day):year_(year), month_(month),...原创 2019-05-31 11:46:48 · 175 阅读 · 0 评论 -
c++内存管理
栈是非静态局部变量/函数参数/返回值等存储地方,栈向下增长内存映射段是高效I/O映射方式,用于装载共享的动态内存库,可以使用系统接口创建共享内存堆用于程序运行时动态内存分配,堆向上增长 通过brk指针操作数据段 存储全局数据和静态数据代码段 可执行的代码 / 常量内存分配函数区别malloc函数原型:void* malloc(unsigned size);函数功...原创 2019-06-17 23:04:52 · 124 阅读 · 0 评论 -
单例模式 Singleton
单例模式 Singleton饿汉模式class Singleton{public: static Singleton* GetInstance() { return &instance_; }private: Singleton(){} Singleton(const Singleton&) = delete; ...原创 2019-06-17 23:43:38 · 159 阅读 · 0 评论 -
c++异常
c++异常c++需要异常吗?在c语言中常见的错误处理方式分为返回值我们常用函数的返回值来标志成功或者失败,甚至是失败的原因。但是这种做法的最大问题是如果调用者不主动检查返回值也是可以被编译器接收的。这在c++中还导致另外一个问题,就是重载函数不能只有不同的返回值,而有相同的参数。如果需要不同返回值的来返回错误信息的话。(除非c++支持多值返回或者使用结构体返回或者使用输出型参数...原创 2019-06-22 22:56:37 · 906 阅读 · 0 评论 -
c++模板一
模板编程函数模板函数模板代表了一个函数家族,该函数模板与类型无关,在使用时被参数化,根据实参类型产生函数的特定类型语法template <typename T1, typename T2, ..., typename Tn>template<typename T>void swap(T& lhs, T& rhs){ T temp...原创 2019-06-23 16:17:40 · 123 阅读 · 0 评论 -
c++多态
多态同一行为,不同对象完成时产生的不同状态多态是在不同继承关系的类对象,去调用同一函数,产生了不同行为。形成条件必须通过基类的指针或者引用调用虚函数被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写虚函数被virtual修饰的类成员函数称为虚函数class Person{public: virtual void display();};虚...原创 2019-07-12 22:52:53 · 134 阅读 · 0 评论 -
c++多态
多态同一行为,不同对象完成时产生的不同状态多态是在不同继承关系的类对象,去调用同一函数,产生了不同行为。形成条件必须通过基类的指针或者引用调用虚函数被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写虚函数被virtual修饰的类成员函数称为虚函数class Person{public: virtual void display();};虚...原创 2019-07-14 14:14:28 · 120 阅读 · 0 评论 -
c++多态原理
多态的原理虚函数表class base{public: virtual void func() { cout << "func" << endl; }private: int a_;};int main(){ base b; cout << sizeof(b) << endl; // 8 32位 return...原创 2019-07-14 14:16:08 · 163 阅读 · 0 评论 -
c++继承一
c++继承一不同访问限定符的继承变化使用class时默认的继承方式是private,使用struct时默认的继承方式是public基类和派生类对象赋值转换派生类对象可以赋值给基类的对象/基类的指针/基类的引用,叫做切片基类对象不能赋值给派送类对象基类的指针可以通过强制类型转换赋值给派生类的指针这是c语言的锅。但是必须是基类的指针是指向派生类对象时才是安全的。如果基类是多态类...原创 2019-07-10 21:24:28 · 128 阅读 · 0 评论 -
c语言打卡
题目一 unsigned int reverse_bit(unsigned int value); 这个函数的返回值value的二进制位模式从左到右翻转后的值。如:在32位机器上25这个值包含下列各位:00000000000000000000000000011001翻转后:(2550136832)10011000000000000000000000000000程序结果返回:25501...原创 2018-11-28 15:33:01 · 433 阅读 · 0 评论 -
c语言打卡
题目一 调整数组使奇数全部都位于偶数前面。题目:输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。分析对数组中元素进行奇偶排序思路使用冒泡排序的方式,将是奇数的放在当前遍历元素前实现void oddByEven(int arr[], int size) { for (int first = 0; fir...原创 2018-12-02 13:12:19 · 532 阅读 · 1 评论 -
c语言打卡
题目一 写一个函数返回参数二进制中 1 的个数 比如: 15 0000 1111 4 个 1 程序原型: int count_one_bits(unsigned int value) { // 返回 1的位数 }分析题目可以看出,我们需要先将十进制数转化为二进制一位一位与1比较思路通常我们使用while循环,将十进制转换为二进制,然后判断其位数是否为1,为1则count++不过如果遇...原创 2018-11-24 20:54:13 · 312 阅读 · 0 评论 -
c语言打卡
第一题 给定两个整形变量的值,将两个值的内容进行交换分析值交换思路引入第三变量不引入第三变量实现//引入第三变量void changeTwo() { int a = 0; int b = 2; int c; c = a; a = b; b = c; printf("%d\n", a); printf("%d\n", b);}//不引入第原创 2018-10-28 21:35:53 · 140 阅读 · 0 评论 -
c语言打卡
第一题 将数组A中的内容和数组B中的内容进行交换分析数组中所存变量可以通过数组下标取出,问题就转换成两变量交换思路遍历两个数组,取出对应的值,引入第三变量,交换其中的值并重新储存到对方数组中实现void exchangeArray() { int arr1[] = { 1,2,3 }; int arr2[] = { 4,5,6 }; int temp; for (int ...原创 2018-10-29 00:06:51 · 188 阅读 · 0 评论 -
c语言打卡
题目一 在屏幕上输出以下图案: * *** ***** ******* ********* *********** ************* *********** ********* ******* ***** *** * 分析通过观察这个图形的 * 的...原创 2018-10-31 23:15:34 · 174 阅读 · 0 评论 -
c语言打卡
第一题 打印100~200 之间的素数分析:1).素数除了1和本身能整除其他数不能整除的数。思路1).首先判断是否是不是素数2).筛选100到200间的素数实现int is_Prime(int n) { int j = 2; for (j = 2; j &amp;lt; n; j++) { if (n%j == 0){ return 0; break; } }...原创 2018-10-24 23:02:36 · 238 阅读 · 0 评论 -
c语言打卡
题目一 完成猜数字游戏分析猜数字游戏,由系统随机出一个1到100的数字,用户输入数字,如果正确,输出 恭喜你猜对了,如果输入错误重新输入。思路整个游戏由菜单,游戏主体组成菜单为选择功能,选择一,进入游戏,其他键退出。游戏主体为无限循环,直到用户猜中。关键点随机数,需要初始化随机种子,否则会导致每次随机出的数是一样的。时间戳需要强转为(unsigned int)实现//菜单...原创 2018-11-02 13:36:57 · 711 阅读 · 0 评论 -
c语言打卡
题目一 递归和非递归分别实现求第n个斐波那契数分析“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34通过数学归纳法 可以推出通项公式 F(1)=1,F(2)=1, F(3)=2,F(n)=F(n-1)+F(n-2)(n>=4,n∈N*)思路递归思想,将大问题化为小问题,当满足递归条件是就依次返回.从这张图的中的文字 “吓得我抱起了 抱着 抱着 ...原创 2018-11-07 23:44:55 · 392 阅读 · 0 评论 -
c语言打卡
题目一 实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定分析自定义参数,用函数解决思路跟以前一样实现void printNumberNine(int number) { for (int i = 1; i < number+1; i++) { for (int j = 1; j <= i; j++) { printf("%d * %d = %d...原创 2018-11-05 21:35:59 · 384 阅读 · 0 评论 -
c语言实现三子棋
分析玩法分析:将正方形对角线连起来,相对两边依次摆上三个双方棋子,只要将自己的三个棋子走成一条线,对方就算输了。思路游戏流程:游戏初始化棋盘初始化棋盘由二位数组模拟,且初始化数组棋盘打印玩家下棋判断下棋坐标是否越界判断下棋坐标是否已经有子如果满足上方条件则在此坐标插入棋子,否则重新输入电脑下棋生成随机坐标数 注意需先随机种子判断下棋坐标是否有子如果满足...原创 2018-11-12 20:52:10 · 224 阅读 · 0 评论 -
c语言打卡
题目一 5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果A选手说:B第二,我第三;B选手说:我第二,E第四;C选手说:我第一,D第二;D选手说:C最后,我第三;E选手说:我第四,A第一;比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。分析根据题目,在不筛选的情况下每个人都有五种可能,所以第一步先展现出这五种可能,常用for循环所有可能情况列出后,就要对这些情况进行筛选,...原创 2018-11-21 21:33:27 · 236 阅读 · 0 评论 -
c语言实现扫雷游戏
分析玩法扫雷就是要把所有非地雷的格子揭开即胜利;踩到地雷格子就算失败。游戏主区域由很多个方格组成。使用鼠标左键随机点击一个方格,方格即被打开并显示出方格中的数字;方格中数字则表示其周围的8个方格隐藏了几颗雷;如果点开的格子为空白格,即其周围有0颗雷,则其周围格子自动打开;如果其周围还有空白格,则会引发连锁反应;在你认为有雷的格子上,点击右键即可标记雷;如果一个已打开格子周围所有的雷已经正...原创 2018-11-18 15:25:37 · 434 阅读 · 0 评论 -
c语言操作符
c语言操作符操作符对于一个程序员来说,是最熟悉不过的了,其数目繁多,单个容易理解,但是组合起来就不太容易让人理解 了,操作符对于计算机世界来说,十分有必要,可以更加便于计算机运算。算术操作符作为最让我们熟悉的莫过于加减乘除了,它们都属于算术操作符+ - * \除了%操作符之外,其他的几个操作符可以作用于整数和浮点数。对于/操作符如果两个操作数都为整数,执行整数除法。而只要有浮点...原创 2018-11-25 22:59:55 · 161 阅读 · 0 评论 -
c++继承二
c++11继承二继承与友元友元关系不能继承,基类友元不能访问子类私有和保护成员class Student;class Person{public: friend void print(const Person&, const Student&);protected: string name_{"yker"}; }; clas...原创 2019-07-10 21:26:31 · 115 阅读 · 0 评论