在C#的学习中,容易混淆virtual方法和abstract方法的使用,现在来讨论一下二者的区别。二者都牵涉到在派生类中与override的配合使用。一、Virtual方法(虚方法)virtual
关键字用于在基类中修饰方法。virtual的使用会有两种情况:情况1:在基类中定义了virtual方法...
分类:
其他好文 时间:
2014-05-26 23:53:06
阅读次数:
354
__hasProp = {}.hasOwnProperty, __extends =
function(child, parent) { // 派生类时,类方法会生成多个副本。 for (var key in parent) { i...
分类:
其他好文 时间:
2014-05-26 19:36:25
阅读次数:
278
1.
sealed——“断子绝孙” 密封类不能被继承。密封方法可以重写基类中的方法,但其本身不能在任何派生类中进一步重写。当应用于方法或属性时,sealed修饰符必须始终与override一起使用。即:密封类不会有子类,所以是“断子绝孙”。2.
new——“你是你的,我是我的” new关键字用于显式...
分类:
其他好文 时间:
2014-05-26 09:39:31
阅读次数:
245
一 Decorator模式意图:
动态的给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。
动态的给一个对象,而不是对整个类添加额外职责,说明此模式将采用的结构是组合而不是继承;要给一个对象添加职责,通常可以使用其类的派生类对象替换当前对象,但这显得不...
分类:
移动开发 时间:
2014-05-26 07:53:53
阅读次数:
442
在C++继承模型中,一个派生类对象表现出来的东西,是其自己的成员加上其基类成员的总和。但这些成员如何摆放,标准并未强制规定。一般而言,先摆放基类成员,内存向高地址增长。
下面从四个部分讨论C++继承模型:
单一继承不含虚函数单一继承并含虚函数多重继承虚拟继承
1、单一继承不含虚函数
这种继承关系很简单,基类子对象包含在了派生类对象中,在内存中连续存放。但有一点需...
分类:
编程语言 时间:
2014-05-26 03:51:22
阅读次数:
295
1、新建一个MFC项目;在资源视图中新建Toolbar资源:2、编辑状态栏:3、在***Dlg.h文件中添加CToolBar类型或其派生类型的一个变量如:(CdlgToolBar
myToolBar;),然后在***Dlg.cpp中OnInitDialog函数中添加如下代码(最简单但不完全): 1 ...
分类:
其他好文 时间:
2014-05-26 01:25:04
阅读次数:
317
这三个概念都是与OO中的多态有关系的。如果单是区别重载与覆盖这两个概念是比较容易的,但是隐藏这一概念却使问题变得有点复杂了,下面说说它们的区别吧。
重载是指不同的函数使用相同的函数名,但是函数的参数个数或类型不同。调用的时候根据函数的参数来区别不同的函数。 覆盖(也叫重写)是指在派生类中重新对基类中...
分类:
其他好文 时间:
2014-05-25 15:20:56
阅读次数:
285
声明:①友元关系不能被继承和传递,基类的友元对派生类没有特殊的访问权限,派生类中的友元更不能访问基类中的成员。
②友元不是成员函数,所以不能使用作用域解析符来指出要使用哪个函数。这个问题的解决方法是使用强制类型转换,以便匹配原型时能够选择正确地函数。
③基类的友元能够访问派生类中的基类成分,这是由于自动将派生类转化成了基类,不是因为继承,但是不能访问...
分类:
其他好文 时间:
2014-05-24 15:12:03
阅读次数:
287
条款05:了解C++默默编写并调用哪些函数
默认构造函数、拷贝构造函数、拷贝赋值函数、析构函数构成了一个类的脊梁,只有良好的处理这些函数的定义才能保证类的设计良好性。
当我们没有人为的定义上面的几个函数时,编译器会给我们构造默认的。
当成员变量里有const对象或引用类型时,编译器会不能合成默认的拷贝赋值函数;当一个基类把它的拷贝赋值函数定义为private时,它的派生类也不无生...
分类:
编程语言 时间:
2014-05-22 17:05:38
阅读次数:
341