程序员人生 网站导航

MFC学习笔记2--C++的重要性质

栏目:互联网时间:2014-11-18 08:25:47
封装(encapsulation):类及其成员:属性,方法。
继承(Inheritance):基类(base class),派生类(derived class)
this指针
虚函数与多态(Polymorphism)
Object slicing与虚函数
静态成员(变量与函数)
构造函数与析构函数
4种不同的对象生成方式(in stack,int heap,global,local static)
1.在堆栈中产生1个对象:
void MyFunc() { CFoo foo; ... }

2.在堆(heap)中产生1个对象:
void MyFunc() { ... CFoo* pFoo = new CFOO(); }

3.产生1个全局变量(同时也必定是1个静态变量):
CFoo foo;
4.产生1个局部静态变量:
void MyFunc() { static CFoo foo; ... }

运行是类型辨认(RTTI)
宏 DECLARE_DYNAMIC, IMPLEMENT_DYNAMIC
类 CRuntimeClass
动态创建(Dynamic Creation)
  RAM
  术语Serialize:做有关文件读写的永久保存操作,并且实现1个虚拟函数,就叫做Serialize.
  宏 DECLARE_DYNCREATE, IMPLEMANT_DYNCREATE
  类 CRuntimeClass
异常处理(Exception Handling)
  C++导入了3个新的exception保存字:
  1.try。以后跟随1段以{}圈出来的程序代码,exception可能在其中产生。
  2.catch。以后跟随1段以{}全出来的程序代码,那是exception处理例程之所在。catch应当紧跟在try以后。
  3.throw。这是1个指令,用来产生(丢出)1个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; };

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐