随笔-80  评论-22  文章-0  trackbacks-0

c++的重要性质:

OOP object oriented programming
property         method
member variable,member function

encapsulation
enheritance
polymorphism
overloading

ellipse circle triangle rectangle square

virtual作用?
如果没有virtual,那么就继承了基类指针的性质,如果有virtual,那么就指向对

象的类型。虚函数正式为了对“如果以一个基类的指针指向一个派生类的对象,那么

通过该指针只能够调用基类所定义的成员函数”这条规则反其道而行的设计。

纯虚函数作用?
就是在基类中并不实现,但是为了在派生类中使用,就需要分配一个并不执行,但

是还需要继承的函数。就是纯虚函数 virtual function()=0;纯虚函数不需要

定义,在派生类中被重新定义。

什么是抽象类?
拥有虚函数的类。抽象类不能产生出对象实体,但是可以拥有指向抽象类的指针,

便于操作抽象类的各个派生类。
虚函数派生下去仍是虚函数,而且可以省略virtual。

虚函数到底有什么作用?
1如果你估计派生类会重新定义一个成员函数,那么你就把基类中的这个函数写成

virtual
2通过单一指令调用不同函数,就是多态Polymorphism,"ability to asume many

forms"
3虚函数是c++语言polymorphism性质以及动态联编的关键
4既然抽象类中的虚函数不打算被调用,那么就把它设置成纯虚函数。
5拥有纯虚函数者为抽象类。
6抽象类不能产生出对象实体,但是我们可以拥有指向抽象类的指针,以便于操作抽

象类的各个派生类。
7虚函数派生下去仍是虚函数,可以不写virtual。

虚函数怎样工作?
在含有虚函数的类中,编译器会为它做出一个虚函数表,表中的每一个元素都指向

一个虚函数的地址。

什么是upcasting?
它是向上强制性类型转换。
class CMyDoc:public CDocument;
CMyDoc mydoc;

(CDocument)mydodc.func();(upcasting)
注意一般不用upcasting。

静态变量到底是什么?
static double m_rate;
static成员变量不属于对象的一部分,而是类的一部分,程序可以在没有诞生任何

对象的时候就处理此种成员变量,但首相你必须初始化它。
static成员变量的初始化不要安排到构造函数中,因为构造函数可以一再被调用;

也不要把初始化安排在头文件中,因为可能会被嵌入到许多地方。应该在类以外的

任何位置设定其初值。
static变量可以想象成一个全程变量。
static成员函数不需要借助任何对象,可以被调用执行,所以编译器不会为它暗加

一个this指针。因此static成员函数无法处理类中的non-static成员变量。
static的构造很析够就相当于全局变量,只是它会在全局函数之前析够。构造函数

和析够函数都是以函数为标志的。

error LINK2001:unresolved external symbol""();一般是因为没有初始化static

的值。


new的好处?
分配对象所需内存空间,并且引发构造函数的执行。

什么是RTTI?
RTTI Runtime Type Information 动态类型识别
就是知道程序执行过程中某个对象是属于那个类的。


什么是动态生成(Dynamic Creation)?

什么是异样处理(Exception Handling)?
使用三个expection保留字:
try:其后跟随一段以{}圈出的程序代码,exception将在那里被处理。(就是将要处

理的代码)
catch:其后{},里边是处理程序。(就是怎样处理了)
throw:用来产生一个exception。


什么是模板?
template,就是可以重复利用的架构。
template <class T>
T power(T base,int exponent);

这里的T就是可以随时改变的量。当然这里的T是类的意思,可以是系统定义的类,

也可以是自己定义的类。
这里注意对于,模板,两个对象如果都使用了同一个模板,在编译的时候是不知道

的,但是链接的时候,连接器就会将他们重复的部分去掉。标准的说就是 链接器会

把所有冗余的template码剔除。在Borland链接器里头称为smart技术。

posted on 2009-07-18 19:25 Bluesea 阅读(381) 评论(0)  编辑 收藏 引用 所属分类: C/C++

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理