自定义博客皮肤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

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

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

2016-01-30 01:56:04 624 0

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

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

2016-01-30 01:35:01 455 0

原创 (一三三)队列模拟

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

2016-01-30 01:32:55 483 0

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

重载>运算符: 例如:ostream& operator 其中: ①ostream类表示cout等,也支持写入文件的ofstream类。同理,也可以换位istream、ifstream类(但要把重载运算符也换为>>);   ②Player&表示类对象的引...

2016-01-30 01:22:26 358 0

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

类对象也可以像基本类型那样,使用指针。   假如有Man类的对象a,可以使用指针指向它: Man* c=&a; 这里表示指针c(类型为Man)指向对象a的地址(使用地址运算符&)。   也可以使用new: Man *a=new Man; 这是new一个动态内存地址,...

2016-01-30 01:17:22 404 0

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

当函数/成员函数,返回对象时,有几种返回方式: ①返回指向对象的引用(例如String& operator=(xx,xx));   ②返回被const限定的指向对象的引用(例如const String& operator=(xx,xx));   ③返回const对象(这个之前没有遇...

2016-01-30 01:14:17 584 0

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

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

2016-01-30 01:11:34 461 0

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

有比较函数是strcmp (参数1, 参数2)   参数是两个字符串,所在头文件是   比较方法是按顺序依次比较参数1和参数2的第一个字符(看ASCII值)。 假如相同,则比较下一个; 假如参数1的比参数2的大,则返回1(正数); 假如参数1的比参数2的小,则返回-1(负数); 假...

2016-01-25 14:56:11 725 0

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

面对基本类型的时候,我们可以使用动态内存(new和delete)。   而面对类的时候,也可以使用动态内存,只不过使用方法有区别。   例如声明一个私有成员,想要这个私有成员的值为一个字符串(但这个字符串是什么是未知的)。 首先,不考虑用char word[40];这样的。原因有两点:①...

2016-01-25 14:47:33 483 0

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

这是我创建的专辑,所有学习笔记都以word格式上传,放在里面,相对更美观和直接。欢迎下载浏览。 http://download.csdn.net/album/detail/2971 1.修改程序清单11.5,使之将一系列连续的随机漫步者位置写入到文件中。对于每个位置...

2016-01-23 02:32:57 1093 0

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

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

2016-01-23 02:27:22 497 0

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

于直接给对象赋值: 之前学过,如何给对象在初始化时进行赋值。 对于C++11来说,初始化方式有三种: ① man c = man{ "cc",1 }; ② man d = { "dd",1 }; ③ man f{ "ff",1 ...

2016-01-23 02:26:53 718 0

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

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

2016-01-23 02:22:13 1452 0

原创 (一二二)友元函数

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

2016-01-23 02:20:39 411 0

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

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

2016-01-23 02:13:56 430 0

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

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

2016-01-19 01:11:52 2770 0

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

1.什么是类? 答: 类是用户自定义类型,有私有成员(不能被外界直接访问)和公有成员(需要用“类名.公有成员名”来访问)。类的链接性为内部(即只在当前文件可用),类不能在函数内部定义。 补充:类声明指定了数据将如何存储,同时指定了用来访问和操纵这些数据的方法(类成员函数)。     2...

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

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

抽象数据类型(abstract data type, ADT),是以通用的方式描述数据类型,而没有引入语言或实现细节。   程序员常常通过定义类,来表示更通用的概念,而对于抽象数据类型,使用类是一种非常好的方式。   当类概念使用ADT方法时,一般是这样做: ①私有部分必须表示数据存储的...

2016-01-19 00:55:28 542 0

原创 (一一九)类作用域

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

2016-01-19 00:53:04 431 0

原创 (一一八)对象数组

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

2016-01-19 00:50:42 304 0

原创 (一一七)this指针

所谓this指针,是一个指针,且这个指针用于类函数定义内部,指向当前对象(的地址)。   this指针的特点: ①只能用于类定义内部;   ②使用方法同结构指针,即使用运算符“->”;   ③指向的是当前对象,即对象a使用这个类方法,其this指针指向的是对象a;   ④t...

2016-01-19 00:49:23 410 0

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

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

2016-01-19 00:39:28 385 0

原创 (一一五)类

OOP(Object Oriented Programming,面向对象编程)最重要的特性: ①抽象; ②封装和数据隐藏; ③多态; ④继承; ⑤代码的可重用性。 注:以上不太懂, 再ps:看完全部就懂了     过程性编程: 一般先考虑遵循的步骤,然后考虑如何处理这些数据(...

2016-01-19 00:25:04 320 0

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

1.下面是一个头文件: // golf.h -- for pe9-1.cpp const int len = 40; struct golf { char fullname[len]; int handicap; };   // non-interactive version: ...

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

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

1.对于下面的情况,应使用哪种存储方案? a。homer是函数的形参。 b。secret变量由两个文件共享。 c。topsercret变量由一个文件中所有函数共享,但对于其他文件来说是隐藏的。 d。beencalled记录包含他的函数被调用的次数。   答:a。自动变量;b。外部变量;...

2016-01-13 23:55:44 390 0

原创 (一一二)名称空间

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

2016-01-13 23:50:40 302 0

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

在之前,说过自动存储(随函数内声明而建立,函数消亡而消亡)、静态存储(全局都存在)、动态存储(一般是用new)。   但是,涉及到多文件的时候,存储类别如何影响信息在文件间的共享。   C++使用三种(C++11使用4种)不同的方案来存储数据,这些方案的区别就在于数据保留在内存中的时间。 ...

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

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

题目 - 最大零矩阵(附加题) 描述 有一个二位数组 m( 2 5 0 0 8 11 15 3 0 0 0 0 12 16 7 0 0 0 0 13 17 8 0 0 7 1 14 18 4 0 0 0 0 0 0 6 0 0 0 0 0 0 这是6行,7列构成的二维数组,其中:...

2016-01-13 23:22:49 505 0

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

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

2016-01-11 01:41:24 2219 0

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

1。编写通常接受一个参数(字符串的地址),并打印该字符串的函数。然而,如果提供了第二个函数(int类型),且该参数不为0,则该函数打印字符串的次数将为该函数被调用的次数(注意,字符串的打印次数不等于第二个参数的值,而等于函数被调用的次数)。是的,这是一个非常可笑的函数,但它让您能够使用本章介绍的一...

2016-01-10 21:23:39 1389 0

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

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

2016-01-10 21:23:05 428 0

原创 (一〇六)函数模板

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

2016-01-09 17:32:34 355 0

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

****本篇大概近万字**** 格式: int a = 1; int &b = a; //b作为a的别名,是一个a变量的引用,需要在声明时进行初始化   效果: ①b是a的引用变量,b的值和地址,和a是相同的,且不会改变;   ②在声明引用变量b时,需要同时对变...

2016-01-06 17:32:12 443 0

原创 (一〇二)内联函数

元旦了,各种打不开博客。元旦结束,博客好了,是因为元旦放假程序员都回家了嘛? ———————————————————————————————— 内联函数和普通函数有所区别。   普通函数需要①函数定义②函数原型③函数调用,具体调用形式是,先调用时,储存当前函数的内存地址(假设为...

2016-01-04 14:38:01 354 0

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