面向对象编程
--转换与继承、复制控制与继承
I.转换与继承
引言:
由于每个派生类对象都包含一个基类部分,因此可以像使用基类对象一样在派生类对象上执行操作。
对于指针/引用,可以将派生类对象的指针/引用转换为基类子对象的指针/引用。
基类类型对象既可以作为独立对象存在,也可以作为派生类对象的一部分而存在,因此,一个基类对象可能是...
分类:
编程语言 时间:
2016-05-12 22:23:04
阅读次数:
217
1.问题引入
for( int index =0; index != 512; ++ index){
//......
上面的for循环代码有两个问题,都和512作为循环上界有关。
第一个问题是程序的可读性。比较index和512有什么意义呢???循环在做什么工作呢???也就是说512是什么东西呢???在本例中,512被称为魔数(magic number),它的意义在上下文中没有...
分类:
编程语言 时间:
2016-05-12 22:21:39
阅读次数:
152
The Definitive Antlr 4 Reference 2nd Edition 第4章第一小节 学习笔记
匹配算数表达式语言
本例中,只使用基本的算数运算(加,减,乘,除),括号表达式,整数,及变量。例如有如下的表达式。
193
a = 5
b = 6
a+b*2
(1+2)*3
在这里介绍的表达式语言,是由换行符所分割的一组语句构成。语句可以是表达式、赋值...
分类:
编程语言 时间:
2016-05-12 22:22:56
阅读次数:
219
面向对象编程
--句柄类与继承[续]
三、句柄的使用
使用Sales_item对象可以更容易地编写书店应用程序。代码将不必管理Item_base对象的指针,但仍然可以获得通过Sales_item对象进行的调用的虚行为。
1、比较两个Sales_item对象
在编写函数计算销售总数之前,需要定义比较Sales_item对象的方法。要用Sa...
分类:
编程语言 时间:
2016-05-12 22:19:50
阅读次数:
279
Spring有两个核心接口:BeanFactory和ApplicationContext,其中ApplicationContext是BeanFactory的子接口。他们都可代表Spring容器,Spring容器是生成Bean实例的工厂,并且管理容器中的Bean。
Bean是Spring管理的基本单位,在基于Spring的Java EE应用中,所有的组件都被当成Bean处理,...
分类:
编程语言 时间:
2016-05-12 22:20:18
阅读次数:
256
用堆排序的方法实现将数组中的数字从小到大排列.
编译器:gcc, 编译环境:32位系统可以正常编译; 如果是64位系统请使用 -m32参数, 或修改宏定义中的汇编代码部分....
分类:
编程语言 时间:
2016-05-12 22:19:35
阅读次数:
185
面向对象编程
--再谈文本查询示例
引言:
扩展第10.6节的文本查询应用程序,使我们的系统可以支持更复杂的查询。
为了说明问题,将用下面的简单小说来运行查询:
Alice Emma has long flowing red hair.
Her Daddy says when the wind blows
through her hair...
分类:
编程语言 时间:
2016-05-12 22:19:17
阅读次数:
292
当多个类中出现相同功能,但是功能主体不同,
这是可以进行向上抽取。这时,只抽取功能定义,而不抽取功能主体。
抽象:看不懂。
抽象类的特点:
1,抽象方法一定在抽象类中。
2,抽象方法和抽象类都必须被abstract关键字修饰。
3,抽象类不可以用new创建对象。因为调用抽象方法没意义。
4,抽象类中的抽象方法要被使用,必须由子类复写起所有的抽象方法后,建立子类对象调用...
分类:
编程语言 时间:
2016-05-12 22:21:21
阅读次数:
164
面向对象编程
--定义基类和派生类[续]
四、virtual与其他成员函数
C++中的函数调用默认不使用动态绑定。要触发动态绑定,必须满足两个条件:
1)只有指定为虚函数的成员函数才能进行动态绑定,成员函数默认为非虚函数,非虚函数不进行动态绑定。
2)必须通过基类类型的引用或指针进行函数调用。
1、从派生类到基类的转换
因为...
分类:
编程语言 时间:
2016-05-12 22:19:56
阅读次数:
249
面向对象编程
--纯虚函数、容器与继承
I.纯虚函数
在函数形参后面写上 =0 以指定纯虚函数:
class Disc_item : public Item_base
{
public:
double net_price(size_t) const = 0; //指定纯虚函数
};
将函数定义为纯虚函数能够说明,该函数为后代类型提...
分类:
编程语言 时间:
2016-05-12 22:18:20
阅读次数:
184
//时间复杂度O(elg(e))#include
#include
#include
#include
#include
using namespace std;
/*
6 9
0 1 34
1 4 12
0 5 19
4 5 26
0 2 46
2 5 25
3 5 25
2 3 17
3 4 38
*/
//class
struct Edge
{
int from ;...
分类:
编程语言 时间:
2016-05-12 22:20:34
阅读次数:
421
项目二:
项目三:
项目五—求和:
#include
using namespace std;
int main()
{
double a[10],asum=0.0,bsum=0.0;
cout<<"请输入十个数:"<<endl;
for(int i=0;i<10;i++)
{
cout<<"a["<<i<>a[i];
}...
分类:
编程语言 时间:
2016-05-12 22:19:23
阅读次数:
149
登录函数的初步实现:
def Login(self, event):
if (self.datacenter._netstat == 0):
lib.MyDialog(u"网路状态",u"网路异常,请检查网络...")
else:
lib.udpFindCcu(self.datacenter, self.devdb.getFindCcu())...
分类:
编程语言 时间:
2016-05-12 22:19:39
阅读次数:
326
转自:https://www.byvoid.com/blog/scc-tarjan/
Tarjan算法是基于对图深度优先搜索的算法,每个强连通分量为搜索树中的一棵子树。搜索时,把当前搜索树中未处理的节点加入一个堆栈,回溯时可以判断栈顶到栈中的节点是否为一个强连通分量。
定义DFN(u)为节点u搜索的次序编号(时间戳),Low(u)为u或u的子树能够追溯到的最早的栈中节点的次序号((这个...
分类:
编程语言 时间:
2016-05-12 22:16:20
阅读次数:
213
1.什么是引用?
引用就是对象的另外一个名字。在实际程序中,引用主要用作函数的形式参数。
引用是一种复合类型,通过在变量名前面添加“&”符号来定义。复合类型是指用其他类型定义的类型。在引用的情况下,每一种引用类型都“关联到”某一其他类型。不能定义引用类型的引用,但是可以定义任何其他类型的引用。
引用必须用与该引用同类型的对象初始化:
int ival = 1024;
int& refVal...
分类:
编程语言 时间:
2016-05-12 22:17:45
阅读次数:
153
首尾相连数组的最大子数组和
时间限制:1000 ms | 内存限制:65535 KB
描述
给定一个由N个整数元素组成的数组arr,数组中有正数也有负数,这个数组不是一般的数组,其首尾是相连的。数组中一个或多个连续元素可以组成一个子数组,其中存在这样的子数组arr[i],…arr[n-1],arr[0],…,arr[j],现在请你这个ACM_Lover用一个最高效的方...
分类:
编程语言 时间:
2016-05-12 22:12:38
阅读次数:
199
高级语言的运行机制
计算机高级语言按程序的执行方式可以分为编译型和解释型两种。
编译型语言是指使用专门的编译器,针对特定平台,也就是操作系统将某种高级语言源代码一次性翻译成可被该平台硬件执行的机器码,并包装成该平台所能识别的可执行性程序
的格式,这个转换过程称为编译,编译生成的可执行性程序可以脱离开发环境,在特定的平台上独立运行。
有些程序编译结束后,还可能需要对其他编译好的目标代码进行连...
分类:
编程语言 时间:
2016-05-12 22:11:06
阅读次数:
170