(参考自http://www.cnblogs.com/jerry19880126/p/3551836.html)

1. 与java语言不同,对于C++,在创建类的对象时,编译器必须要在编译期间看到类定义,以确定要分配的内存大小,因此要定义一个类对象,文件常常要include包含类定义的头文件,这就引发了一个问题:如果头文件中的类定义(数据或接口)发生改变,那么include该头文件的所有文件都需要重新编译,这就增加了开发负担.

2.使用Handle class

1中问题在java中并不存在,因为java是基于指针(表面是引用)管理动态内存分配的对象的,而创建一个指向某类的指针只需要类的前置声明即可.由此启发,C++也可以采用这种方式"将对象实现细目隐藏于指针背后",例如一个名为Demo的类含有大量数据成员和函数成员,那么可以创建一个realDemo类存有这些成员,而Demo类只包含指向realDemo的指针,如下:

//"RealDemo.h"
#ifndef REAFDEMO
#define REALDEMO
class RealDemo{
public:
    int fun1();
    int fun2(int num);
    ...
private:
    ...
}
#endif REALDEMO
View Code

相关文章:

  • 2021-09-28
  • 2021-07-22
  • 2021-05-29
  • 2021-12-03
  • 2021-08-15
  • 2021-10-02
  • 2022-01-05
  • 2021-07-17
猜你喜欢
  • 2021-10-04
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-13
  • 2021-11-16
  • 2021-06-16
相关资源
相似解决方案