自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

qq20004604的博客

github.com/qq20004604

  • 博客(34)
  • 资源 (25)
  • 收藏
  • 关注

原创 (一三五)第十二章编程练习

1.对于下面的类声明class Cow{char name[20];char * hobby;double weight;public:Cow();Cow(const char*nm, const char * ho, double wt);Cow(const Cow &c);~Cow();Cow & operator=(const Cow &c);vo

2016-01-30 01:56:04 735

原创 (一三四)第十二章复习题

1.假设String类有如下私有成员:class String{private:char*str; //points to string allocated by new//...};a.下述默认构造函数有什么问题?String::String(){}b.下述构造函数有什么问题?String::String(const char* s){str=s;

2016-01-30 01:35:01 560

原创 (一三三)队列模拟

所谓队列,大概就是指能够容纳一定数量有序的项目,新的项目被添加到队尾,也可以删除队首的项目。(比如银行排队办业务) 队列是先进先出原则(栈是LIFO)。    队列的特征有:①队列存储有序的项目序列;②队列所能容纳的项目数有一定限制;③应当能够创建空队列;④应当能够检查队列是否为空;⑤应当能够检查队列是否为满;⑥应当能够在队尾添加项目;⑦应当

2016-01-30 01:32:55 668

原创 (一三二)类的三种常见技术

重载>运算符:例如:ostream& operator其中:①ostream类表示cout等,也支持写入文件的ofstream类。同理,也可以换位istream、ifstream类(但要把重载运算符也换为>>); ②Player&表示类对象的引用,之所以用const进行限定,原因在于为了即可以支持被const限定的对象,也可以防止传递的引用被修改; ③假如类有返回需要值

2016-01-30 01:22:26 428

原创 (一三一)指向对象的指针

类对象也可以像基本类型那样,使用指针。 假如有Man类的对象a,可以使用指针指向它:Man* c=&a;这里表示指针c(类型为Man)指向对象a的地址(使用地址运算符&)。 也可以使用new:Man *a=new Man;这是new一个动态内存地址,类型为Man,然后用a指向地址。new的过程中,调用默认构造函数创建一个对象,被放在堆,而指针a指向的则是这个对象

2016-01-30 01:17:22 741

原创 (一三〇)有关返回对象的说明

当函数/成员函数,返回对象时,有几种返回方式:①返回指向对象的引用(例如String& operator=(xx,xx)); ②返回被const限定的指向对象的引用(例如const String& operator=(xx,xx)); ③返回const对象(这个之前没有遇介绍过)。 ④返回对象(一般返回的不是类对象,而是类中的某一个数据对象。如果返回类对象的话,会调用复

2016-01-30 01:14:17 747

原创 (一二九)类中使用new

在类定义——主要是类的构造函数中使用new时,需要注意很多问题:①按照一个new对应一个delete的原则。 ②构造函数中使用new/ new [],那么析构函数中就应该使用delete/ delete[]; ③析构函数中使用delete/ delete[],那么构造函数、默认构造函数、复制构造函数,都应该使用new/ new[]。 ④且new和delete应该保持一致

2016-01-30 01:11:34 1342

原创 (一二八)比较成员函数、中括号表示法、静态成员函数

有比较函数是strcmp (参数1, 参数2) 参数是两个字符串,所在头文件是 比较方法是按顺序依次比较参数1和参数2的第一个字符(看ASCII值)。假如相同,则比较下一个;假如参数1的比参数2的大,则返回1(正数);假如参数1的比参数2的小,则返回-1(负数);假如两个字符串完全一样,则返回0。 其原理是(这个我自己写的):int strcmp(c

2016-01-25 14:56:11 887

原创 (一二七)动态内存和类——第十二章

面对基本类型的时候,我们可以使用动态内存(new和delete)。 而面对类的时候,也可以使用动态内存,只不过使用方法有区别。 例如声明一个私有成员,想要这个私有成员的值为一个字符串(但这个字符串是什么是未知的)。首先,不考虑用char word[40];这样的。原因有两点:①实际字符串可能超过40个字符;②对于没有超过的,很可能导致内存浪费(例如创建了1w个对象,有9000个

2016-01-25 14:47:33 558

原创 (一二六)第十一章编程练习

这是我创建的专辑,所有学习笔记都以word格式上传,放在里面,相对更美观和直接。欢迎下载浏览。http://download.csdn.net/album/detail/29711.修改程序清单11.5,使之将一系列连续的随机漫步者位置写入到文件中。对于每个位置,用步号进行标志。另外,让该程序将初始条件(目标距离和步长)以及结果小结写入到该文件中。该文件的内容与

2016-01-23 02:32:57 1236

原创 (一二五)第十一章复习题

1.使用成员函数为Stonewt类重载乘法运算符,该运算符将数据成员与double类型的值相乘。注意用英石和磅表示时,需要进位。也就是说,将10英石8磅乘以2等于21英石2磅。答:Stonewt Stonewt::operator*(double a){Stonewt q;q.stone=stone*a+pounds*a/14;q.pounds=(pounds*a)%14;

2016-01-23 02:27:22 567

原创 (一二四)给类对象赋值、以及类对象的返回值

于直接给对象赋值:之前学过,如何给对象在初始化时进行赋值。对于C++11来说,初始化方式有三种:① man c = man{ "cc",1 };② man d = { "dd",1 };③ man f{ "ff",1 }; 假如有一类M,他有两个私有成员a和b(int类型)。于是新建一对象M q; 对象q使用默认构造函数(假如都赋值为0,这个不重要);现在,我们

2016-01-23 02:26:53 1409

原创 (一二三)矢量坐标计算

一个类,包含极坐标和直角坐标。 两个这样的类对象,通过运算符重载,可以直接相加/相减,并得出一个新的坐标,而这个新坐标,是原来两个对象的矢量相加的结果。 代码如下://Point.h 包含类定义#pragma onceclass Point{public: enum mode { xy = 0, ji = 1 }; //常量private: double x; /

2016-01-23 02:22:13 3104

原创 (一二二)友元函数

由于C++控制了对类对象的访问(例如不允许访问私有成员)。于是,通常公有类方法(例如:成员函数)提供唯一的访问途径。 这样保护了私有成员,但同时又因为这种限制太严格,以致于不适合特定的编程问题。 在这种情况下,C++提供了另外一种形式的访问权限:友元。  友元有三种:①友元函数;②友元类;③友元成员函数。   通过让函数成为类的友元,可以赋予

2016-01-23 02:20:39 563

原创 (一二二)运算符重载——第十一章

本章重点是类设计技术,而不是通用原理。 C++的重点是多使用。正如我之前写了这么多的学习笔记一样,几乎绝大部分的代码,都是我根据书上的知识,然后理解自行再创造写下的。虽然遇见了不少问题,但解决后,下次再遇见这类情况,解决起来很轻松,绝大多数都可以直接靠记忆书写代码,即使个别忘记了,回头翻一番笔记,基本也能解决,需要靠百度去解决的,已经很少了。  运算符重载是一种形式的C++

2016-01-23 02:13:56 533

原创 (一二一)第十章编程练习

1.为下面这个类提供方法和定义,并编写一个小程序用于演示所有特性。一个类来表示银行账户,数据成员包括储户姓名、账号(使用字符串)和存款。成员函数执行如下操作:①创建一个对象并将其初始化;②显示储户姓名、账号和存款;③存入参数指定的存款;④取出参数指定的款项。#includeclass Bankaccount{std::string name;char id[

2016-01-19 01:11:52 3718

原创 (一二一)第十章复习题

1.什么是类?答:类是用户自定义类型,有私有成员(不能被外界直接访问)和公有成员(需要用“类名.公有成员名”来访问)。类的链接性为内部(即只在当前文件可用),类不能在函数内部定义。补充:类声明指定了数据将如何存储,同时指定了用来访问和操纵这些数据的方法(类成员函数)。  2.类如何实现抽象、封装和数据隐藏?答:实现抽象靠的是类的定义,描述一个东西的各方面情况,用各种

2016-01-19 00:57:11 1014 1

原创 (一二〇)抽象数据类型

抽象数据类型(abstract data type, ADT),是以通用的方式描述数据类型,而没有引入语言或实现细节。 程序员常常通过定义类,来表示更通用的概念,而对于抽象数据类型,使用类是一种非常好的方式。 当类概念使用ADT方法时,一般是这样做:①私有部分必须表示数据存储的方式。例如,可以使用常规数组、动态分配数组或更高级的数据结构(如链表); ②公有接口应隐藏数据

2016-01-19 00:55:28 703

原创 (一一九)类作用域

变量、函数具有不同的作用域,C++的也引入了一种新的作用域:类作用域。 在类中定义的名称(如类数据成员和类成员函数名)的作用域,都为整个类,作用域为整个类的名称,在该类之中是已知的,在类外是不可知的(如私有成员变量、公有成员变量和函数也算,因为需要使用作用域解析运算符才能调用)。 因此,可以在不同类中使用相同的类成员名而不会引起冲突(例如man类里有一个int a,而player类

2016-01-19 00:53:04 566

原创 (一一八)对象数组

对象的数组,和声明一个普通的结构数组并没有什么区别。 在默认情况下,单纯的声明一个对象数组(未显式的调用构造函数时),那么将调用默认构造函数为对象数组的每个成员进行赋值(具体赋值情况需要根据默认构造函数而定)。 如代码:#include#includeclass man{private: std::string name; int a;public: man(

2016-01-19 00:50:42 360

原创 (一一七)this指针

所谓this指针,是一个指针,且这个指针用于类函数定义内部,指向当前对象(的地址)。 this指针的特点:①只能用于类定义内部; ②使用方法同结构指针,即使用运算符“->”; ③指向的是当前对象,即对象a使用这个类方法,其this指针指向的是对象a; ④this->私有成员  这个在大多数情况下,和只用私有成员效果是一样的,但是若参数名和私有成员名相同,那么这种

2016-01-19 00:49:23 482

原创 (一一六)类的构造函数和析构函数

类构造函数:构造函数 是专门用于构造新对象、将值赋给它们的数据成员。C++为这些成员提供了名称和使用语法,而程序员需要提供方法定义。名称与类名相同。例如:Stock类的一个可能的构造函数是名为Stock()的成员函数。构造函数的原型和函数头有一个有趣的特征——虽然没有返回值,但没有被声明为void类型。实际上,构造函数没有声明类型。  声明和定义构造函数:和使用普通

2016-01-19 00:39:28 578

原创 (一一五)类

OOP(Object Oriented Programming,面向对象编程)最重要的特性:①抽象;②封装和数据隐藏;③多态;④继承;⑤代码的可重用性。注:以上不太懂,再ps:看完全部就懂了  过程性编程:一般先考虑遵循的步骤,然后考虑如何处理这些数据(可能需要把这些数据放存储在一个文件之中,写入和读取)。 面向对象编程:①考虑如何表示数据、

2016-01-19 00:25:04 417

原创 (一一四)第九章编程练习

1.下面是一个头文件:// golf.h -- for pe9-1.cppconst int len = 40;struct golf{char fullname[len];int handicap;}; // non-interactive version://  function sets golf structure to provided name,

2016-01-13 23:56:35 1172 1

原创 (一一三)第九章复习题

1.对于下面的情况,应使用哪种存储方案?a。homer是函数的形参。b。secret变量由两个文件共享。c。topsercret变量由一个文件中所有函数共享,但对于其他文件来说是隐藏的。d。beencalled记录包含他的函数被调用的次数。 答:a。自动变量;b。外部变量;c。静态内部变量;d。无链接性的静态变量。c补充:也可以在一个未命名的名称空间中定义 2。

2016-01-13 23:55:44 598

原创 (一一二)名称空间

在C++之中,名称可以是变量、函数、结构、枚举、类以及类和结构的成员。随着项目的增大,名称相互冲突的可能性也将增加。 使用多个厂商的类库时,可能导致名称冲突。 例如两个类库都定义了名称为List、Tree和Node的类,但定义的方式并不兼容(一个干这个,一个干那个),如果你需要使用第一个的List,第二个的Tree,你就不能一口气把两个类库都包含进去(就像using namespa

2016-01-13 23:50:40 417

原创 (一一一)存储持续性、作用域和链接性

在之前,说过自动存储(随函数内声明而建立,函数消亡而消亡)、静态存储(全局都存在)、动态存储(一般是用new)。 但是,涉及到多文件的时候,存储类别如何影响信息在文件间的共享。 C++使用三种(C++11使用4种)不同的方案来存储数据,这些方案的区别就在于数据保留在内存中的时间。 自动存储持续性:在函数定义中声明的变量(包括函数参数)的存储持续性是自动的。它们在程序开始执行

2016-01-13 23:24:04 685 1

原创 (一一〇)二维数组里找零最多的题目

题目 - 最大零矩阵(附加题)描述有一个二位数组 m(2 5 0 0 8 11 153 0 0 0 0 12 167 0 0 0 0 13 178 0 0 7 1 14 184 0 0 0 0 0 06 0 0 0 0 0 0这是6行,7列构成的二维数组,其中:由第4~5行(最后2行),第1~6列(最后6列)构成的子数组最大,共有12个0元素,因此,应该输出 1

2016-01-13 23:22:49 669

原创 (一〇九)单独编译(多个源代码文件和头文件)

单独编译的简单原理:C++在内存中储存数据提供了多种选择。 可以选择数据保留在内存中的时间长度(存储持续性)以及程序的哪一部分可以访问数据(作用域和链接)等。可以使用new来动态地分配内存,而定位new运算符提供了这种技术的一种变种。C++名称空间是另一种控制访问权的方式。 通常,大型程序都由多个源代码文件组成,这些文件可能共享一些数据。这样的程序涉及到文件的单独编译。 

2016-01-11 01:41:24 3524 2

原创 (一〇八)第八章编程练习

1。编写通常接受一个参数(字符串的地址),并打印该字符串的函数。然而,如果提供了第二个函数(int类型),且该参数不为0,则该函数打印字符串的次数将为该函数被调用的次数(注意,字符串的打印次数不等于第二个参数的值,而等于函数被调用的次数)。是的,这是一个非常可笑的函数,但它让您能够使用本章介绍的一些技术。在一个简单的程序中使用该函数,以演示该函数是如何工作的。 答:#includeu

2016-01-10 21:23:39 1792

原创 (一〇七)第八章复习题

1.哪种函数适合定义为内联函数?答:短小的,执行速度快的,占用内存小的适合。还有非递归的 2.假如song()函数的原型如下:void song(const char* name, int times);a.如何修改原型,使times的默认值为1?b.函数定义需要做哪些修改?c.能否为name提供默认值“O.My Papa”? 答:a。 修改成:void son

2016-01-10 21:23:05 542

原创 (一〇六)函数模板

函数模板的意义在于,可以在不同的参数下,起到同样的作用。按照教程所说,它们使用泛型来定义函数,其中泛型可用具体的类型(如int、double)替换。通过将类型作为参数传递给模板,可使编译器生成该类型的函数。 由于模板允许以泛型(而不是具体的类型)的方式编写程序,因此在有时也会被称为是通用编程。 由于类型是用参数表示的,因此模板特性有时也被称为参数化类型。 格式:te

2016-01-09 17:32:34 511

原创 (一〇三)引用变量及相关(万字长文)

****本篇大概近万字****格式:int a = 1;int &b = a; //b作为a的别名,是一个a变量的引用,需要在声明时进行初始化 效果:①b是a的引用变量,b的值和地址,和a是相同的,且不会改变; ②在声明引用变量b时,需要同时对变量b进行初始化,即不能先声明,然后再初始化;原因是引用变量b需要根据他被引用的变量,而拥有地址,而不是有自己独

2016-01-06 17:32:12 574

原创 (一〇二)内联函数

元旦了,各种打不开博客。元旦结束,博客好了,是因为元旦放假程序员都回家了嘛?————————————————————————————————内联函数和普通函数有所区别。 普通函数需要①函数定义②函数原型③函数调用,具体调用形式是,先调用时,储存当前函数的内存地址(假设为地址A),然后调用函数,跳到被调用函数的内存地址(地址B),然后在地址B处依次执行,等执行完被调用的函

2016-01-04 14:38:01 443

nodejs项目代码 demo

http://blog.csdn.net/qq20004604/article/details/52019904

2016-09-23

myblog(8月10日)

myblog的源代码 博客链接:http://blog.csdn.net/qq20004604/article/details/52019904

2016-08-10

JavaScript心得笔记

JavaScript心得笔记,比较零散

2016-08-06

网易云课堂之JavaScript笔记(原创带心得)

基于网易云课堂相关内容所写的

2016-08-06

dojo心得分享

根据自己实际使用中,从新手到普通开发者中,遇见的各种常见问题所总结出来的经验总结

2016-08-03

jquery心得分享

根据自己实际使用中,从新手到普通开发者中,遇见的各种常见问题所总结出来的经验总结

2016-08-03

HTML及CSS心得分享

根据自己实际使用中,从新手到普通开发者中,遇见的各种常见问题所总结出来的经验总结

2016-08-03

网易云课堂之DOM编程艺术(原创带心得)

借鉴网易云课堂视频内容缩写,全部经自己验证再创造,非抄袭。 内有自己实践写的各种代码

2016-08-03

微博网站源代码(nodejs)完成版V1.0

博客链接:http://blog.csdn.net/qq20004604/article/details/52019904

2016-08-01

nodejs创建的express博客的base版本

只装了express的nodejs项目,通过app.js来启动,监听端口为80(无需通过特殊端口来访问,本地的话可以直接访问127.0.0.1)

2016-07-27

dojo的二级下拉菜单demo

二级下拉菜单DEMO,我博客分享要用

2016-07-06

卡牌游戏源代码(CMD窗口)

卡牌游戏源代码(CMD窗口) 博客链接: http://blog.csdn.net/qq20004604/article/details/50663696

2016-02-29

卡牌游戏的游戏资源文件

卡牌游戏的游戏资源。 请查看我个人博客获得源代码

2016-02-14

《C++ Primer Plus第6版中文版》学习笔记(第十章)

《C++ Primer Plus第6版中文版》学习笔记(第十章) 红字内容是有疑问或者没把握的。 绿字部分是比较重要,或者经过确认的

2016-01-19

《C++ Primer Plus第6版中文版》学习笔记(第十一章)

《C++ Primer Plus第6版中文版》学习笔记(第十一章) 红字内容是有疑问或者没把握的。 绿字部分是比较重要,或者经过确认的

2016-01-19

《C++ Primer Plus第6版中文版》学习笔记(第九章)

红字内容是有疑问或者没把握的。 绿字部分是比较重要,或者经过确认的

2016-01-14

《C++ Primer Plus第6版中文版》学习笔记(第八章)

红字内容是有疑问或者没把握的。 绿字部分是比较重要,或者经过确认的

2016-01-10

《C++ Primer Plus第6版中文版》学习笔记(第七章)

红字内容是有疑问或者没把握的。 绿字部分是比较重要,或者经过确认的

2015-12-28

C++语法学习笔记(至六十一)

C++语法的学习笔记,随学习进度更新,目前到(六十一)。 书籍为PDF版的:C++ Primer Plus 第6版 中文版(971页) 学习进度为:第四章4.10.3(比较数组、vector对象和array对象) 尚未学习到4.11(总结) 顺便求个c++方面的实习工作2015.12.4

2015-12-04

空空如也

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

TA关注的人

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