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 阅读(396)
评论(0) 编辑 收藏 引用 所属分类:
C/C++