c++
Cheeky_man
初学者
展开
-
C++成长之路(3)——求两个数m和n(m≥n)的最大公因子。
(1)自然语言算法描述:1.以n除m,令r为余数(0≤r≤n)2.若r= =0,则结束算法,n为最大公因子3.若r≠0,则m←n,n←r,返回1(2)伪代码算法描述:int max_common_factor(int m,int n)1.r=m%n2.while(r!=0)3.m=n;n=r;r=m%n;4.return n;5.end完整代码:#...原创 2019-03-02 11:17:40 · 869 阅读 · 0 评论 -
《C++ 面向对象程序设计(第2版) 谭浩强编》——课后习题之编程题——第1章
1.7 求2个或3个正整数中的最大数,用带有默认参数的函数实现#include <iostream>using namespace std;int max(int a, int b){//求两个数的最大值 if(a > b) return a; else return b;}int main(){ int...原创 2019-03-04 11:19:02 · 7462 阅读 · 1 评论 -
C++成长之路(11)——常用头文件及相应函数【持续更新ing】
头文件:iostreamstatic_cast是一个强制类型转换操作符。强制类型转换,也称为显式转换,C++中强制类型转换操作符有static_cast、dynamic_cast、const_cast、reinterpert_cast四个。本节介绍static_cast操作符。编译器隐式执行的任何类型转换都可以由static_cast来完成,比如int与float、double与cha...原创 2019-03-04 10:40:32 · 1342 阅读 · 0 评论 -
《C++ 面向对象程序设计(第2版) 谭浩强编》——课后习题之编程题——第3章
3.2 分析下面的程序...#include <iostream>using namespace std;class Date{public: Date(int, int, int); Date(int, int); Date(int); Date(); void display();private: int month;...原创 2019-03-13 21:40:17 · 7816 阅读 · 1 评论 -
C++成长之路(10)——结构体与联合体
一、结构体结构体是一种特殊形态的类 与类的唯一区别:类的缺省访问权限是private,结构体的缺省访问权限是public 结构体存在的主要原因:与C语言保持兼容 什么时候用结构体而不用类 定义主要用来保存数据、而没有什么操作的类型 人们习惯将结构体的数据成员设为公有,因此这时用结构体更方便 结构体的定义struct 结构体名称 { 公有成员p...原创 2019-03-03 16:50:36 · 483 阅读 · 1 评论 -
C++成长之路(9)——构造函数
构造函数的作用在对象被创建时使用特定的值构造对象,将对象初始化为一个特定的初始状态。 例如:希望在构造一个Clock类对象时,将初试时间设为0:0:0,就可以通过构造函数来设置。构造函数的形式函数名与类名相同; 不能定义返回值类型,也不能有return语句; 可以有形式参数,也可以没有形式参数; 可以是内联函数; 可以重载; 可以带默认参数值。构造函数的调用时机在对...原创 2019-03-03 14:38:09 · 562 阅读 · 0 评论 -
C++成长之路(8)——类和对象
类和对象的定义对象是现实中的对象在程序中的模拟。 类是同一类对象的抽象,对象是类的某一特定实体。 定义类的对象,才可以通过对象使用类中定义的功能。设计类就是设计类型此类型的“合法值”是什么? 此类型应该有什么样的函数和操作符? 新类型的对象该如何被创建和销毁? 如何进行对象的初始化和赋值? 对象作为函数的参数如何以值传递? 谁将使用此类型的对象成员?类定义的语法形式...原创 2019-03-03 11:06:41 · 1037 阅读 · 0 评论 -
C++成长之路(7)——面向对象程序设计的基本特点
一、抽象:对同一类对象的共同属性和行为进行概括,形成类。 先注意问题的本质及描述,其次是实现过程或细节。 数据抽象:描述某类对象的属性或状态(对象相互区别的物理量)。代码抽象:描述某类对象的共有的行为特征或具有的功能。 抽象的实现:类。 抽象实例——钟表数据抽象:int hour, int minute, int second代码抽象:setTime(), sh...原创 2019-03-02 22:21:55 · 165 阅读 · 0 评论 -
C++成长之路(6)——函数重载
函数重载:C++允许功能相近的函数在相同的作用域内以相同函数名声明,从而形成重载。方便使用,便于记忆。几种类型:1.形参类型不同2.形参个数不同注意事项: 重载函数的形参必须不同:个数不同或类型不同; 编译程序将根据实参和形参的类型及个数的最佳匹配来选择调用哪个函数。不要将不同功能的函数声明为重载函数,以免出现调用结果的误解、混淆。这样不好:思考题...原创 2019-03-02 21:14:25 · 397 阅读 · 0 评论 -
C++成长之路(5)——引用类型
引用(&)是标识符的别名 定义一个引用时,必须同时对它进行初始化,使它指向一个已存在的对象 例如:int i,j;int &ri = i; //定义int引用ri,并初始化为变量的引用j = 10;ri = j; //相当于i = j 一旦一个引用被初始化后,就不能改为指向其他对象 引用可以作为形参 例题:输入两个整数交换...原创 2019-03-02 19:38:21 · 155 阅读 · 0 评论 -
C++成长之路(2)——随机产生函数 rand函数及srand函数
如何通过C++来模拟投骰子的游戏呢,这就涉及到随机数产生函数了。c++中已包括随机数函数 rand函数函数院校 int rand(void);所需头文件:<cstdlib>功能和返回值:求出并返回一个伪随机数(所谓伪随机数,就是多次执行程序,会产生相同的随机数)那么如何解决这一函数的缺点呢?不用担心,C++里还有一个种子函数原型:void srand (unsi...原创 2019-03-01 23:25:19 · 434 阅读 · 0 评论 -
C++成长之路(1)——判断一个数是否为回文数
所谓回文数,就是说一个数字从左边读和从右边读的结果是一模一样的。那么如何编程来判断一个数是否为回文数呢?///判断一个数是否为回文数//思路:从个位开始,依次取出每位上的数,然后反顺序输出,与原数比较即可bool symm(unsigned n){ unsigned i = n; unsigned m = 0; while(i > 0) {...原创 2019-03-01 22:30:17 · 1454 阅读 · 0 评论 -
C++成长之路(4)——函数的递归调用
函数直接或间接地调用自身,称为递归调用例如:计算n!方法1(不使用递归):方法2(使用递归):思路如下:计算n!--完整代码 :#include <iostream>using namespace std;//计算n的阶乘unsigned fac (unsigned n){ unsigned f; if(n == 0) ...原创 2019-03-02 16:15:22 · 416 阅读 · 0 评论 -
《C++ 面向对象程序设计(第2版) 谭浩强编》——课后习题之编程题——第2章
2.2 类体内定义成员函数#include <iostream>using namespace std;class Time{public: void set_time(){ cin>>hour>>minute>>sec; } void show_time(){ cout<<...原创 2019-03-04 14:38:00 · 3551 阅读 · 0 评论