常用到的一个类,是修改别人的代码来的,出处忘了。
使用imp形式是为了把 windows.h 从头文件中拿掉,对于需要支持多平台的代码有用。
代码中为什么不用 std::unique_ptr<StopwatchImp> ? 因为 unique_ptr 需要在解析头文件时知道 StopwatchImp 的定义。前置申明可以,但是得在此头文件结束之前给出类的定义,Stopwatch 做不到。
// stopwatch.h
#pragma once
#include <memory>
class StopwatchImp;
class Stopwatch
{
public:
Stopwatch();
void start();
void stop();
int elapsed();
priva