封装(encapsulation):类及其成员:属性,方法。
继承(Inheritance):基类(base class),派生类(derived class)
this指针
虚函数与多态(Polymorphism)
Object slicing与虚函数
静态成员(变量与函数)
构造函数与析构函数
四种不同的对象生成方式(in stack,int heap,global,local static)
1.在堆栈中产生一个对象:
2.在堆(heap)中产生一个对象:
3.产生一个全局变量(同时也必然是一个静态变量):
CFoo foo;
4.产生一个局部静态变量:
运行是类型识别(RTTI)
宏 DECLARE_DYNAMIC, IMPLEMENT_DYNAMIC
类 CRuntimeClass
动态创建(Dynamic Creation)
RAM
术语Serialize:做有关文件读写的永久保存操作,并且实现一个虚拟函数,就叫做Serialize.
宏 DECLARE_DYNCREATE, IMPLEMANT_DYNCREATE
类 CRuntimeClass
异常处理(Exception Handling)
C++导入了三个新的exception保留字:
1.try。之后跟随一段以{}圈出来的程序代码,exception可能在其中发生。
2.catch。之后跟随一段以{}全出来的程序代码,那是exception处理例程之所在。catch应该紧跟在try之后。
3.throw。这是一个指令,用来产生(丢出)一个exception。
MFC以下列宏仿真C++ exception handling:
TRY
CATCH(type,object)
AND_CATCH(type,object)
END_CATCH
CATCH_ALL(object)
AND_CATCH_ALL(object)
END_CATCH_ALL
END_TRY
THROW()
THROW_LAST()
THROW参数类型 对应 AfxThrow_函数
Template
C++中的template有两种,分别针对function和class。
Template Function:
Template Classes:
继承(Inheritance):基类(base class),派生类(derived class)
this指针
虚函数与多态(Polymorphism)
Object slicing与虚函数
静态成员(变量与函数)
构造函数与析构函数
四种不同的对象生成方式(in stack,int heap,global,local static)
1.在堆栈中产生一个对象:
void MyFunc() {
CFoo foo;
...
}
2.在堆(heap)中产生一个对象:
void MyFunc() {
...
CFoo* pFoo = new CFOO();
}
3.产生一个全局变量(同时也必然是一个静态变量):
CFoo foo;
4.产生一个局部静态变量:
void MyFunc() {
static CFoo foo;
...
}
运行是类型识别(RTTI)
宏 DECLARE_DYNAMIC, IMPLEMENT_DYNAMIC
类 CRuntimeClass
动态创建(Dynamic Creation)
RAM
术语Serialize:做有关文件读写的永久保存操作,并且实现一个虚拟函数,就叫做Serialize.
宏 DECLARE_DYNCREATE, IMPLEMANT_DYNCREATE
类 CRuntimeClass
异常处理(Exception Handling)
C++导入了三个新的exception保留字:
1.try。之后跟随一段以{}圈出来的程序代码,exception可能在其中发生。
2.catch。之后跟随一段以{}全出来的程序代码,那是exception处理例程之所在。catch应该紧跟在try之后。
3.throw。这是一个指令,用来产生(丢出)一个exception。
MFC以下列宏仿真C++ exception handling:
TRY
CATCH(type,object)
AND_CATCH(type,object)
END_CATCH
CATCH_ALL(object)
AND_CATCH_ALL(object)
END_CATCH_ALL
END_TRY
THROW()
THROW_LAST()
THROW参数类型 对应 AfxThrow_函数
Template
C++中的template有两种,分别针对function和class。
Template Function:
template <class T>
T power(T base, int exception)
Template Classes:
template <class T>
class CThree {
public:
CThree(T t1,T t2,T t3);
T Min();
T max();
private:
T a , b , c;
};