C++ 面向对象开发1

  • Object Based:面对的是单一class的设计;Object Oriented:面对的是多重classes的设计,classes和classes之间的关系。
  • class 前向声明,声明,定义。
  • 函数若在class body中定义完成,便自动成为inline函数。如果函数太复杂就不会成为inline。
  • overload的函数编译之后签名不同。虽然参数列表不同,可以重载,但是参数列表有默认值,可能会与没有参数的版本歧义,不能重载。 
  • 非const对象可以调用const成员函数,const对象只能调用const成员函数。
  • 封装是对类而言,不是对对象而言。同一个class的对像互为friends。
  • 成员函数和全局函数的选择,<<重载只能是全局非成员函数。输出流是ostream对象
  • class 设计分布如下
#ifndef _String_
#define _String_

class String{
    ...
};

String::function(...)...
Global-function(...)...

#endif
  • class with pointer members 必须有copy ctor 和 copy op=。
  • new:先分配内存,再调用构造函数。
  • delete:先调用dtor,再释放memory。
  • new delete 分配释放的内存,实际使用的就是malloc free。
  • 为什么new [] 要搭配 delete[]

     

posted @ 2023-08-22 15:24  stu--wy  阅读(13)  评论(0)    收藏  举报