像上面这样,把链表的Node类型定义在list里,编译好像时没问题的,也能用。
这也做好吗,会不会有什么问题,百度好像没看到相关的例子这么做过。
像上面这样,把链表的Node类型定义在list里,编译好像时没问题的,也能用。
这也做好吗,会不会有什么问题,百度好像没看到相关的例子这么做过。
opencv里有类似的使用方式:
举例来说:
ocl.hpp中的类定义:
class CV_EXPORTS_W_SIMPLE Device
{
.......
protected:
struct Impl;
Impl* p;
};
ocl.cpp的实现:
struct Device::Impl
{
Impl(void* d)
{...}
......
};
特点是头文件的class定义对象的访问接口, 而具体的实现在protect: struct Impl里完成,对分离对象的接口和实现效果比较好。
https://github.com/opencv/opencv/blob/master/modules/core/src/ocl.cpp
https://github.com/opencv/opencv/blob/master/modules/core/include/opencv2/core/ocl.hpp