放个ASSERT(0)调试运行时执行到此为报错中断,好知道成员函数还没写完。
另一种情况是预防性的错误检查,在认为不可能的执行到的情况下加一句ASSERT(0),如果运行到此,代码逻辑或条件就可能有问题。
class X{
X(){}
}
声明一个对象X obj或者X obj=X()都可以
下面这个链接有关于headfirst中观察者模式的c++实现方法。
http://www.th7.cn/Program/cp/201501/364477.shtml
//程序是这样设计的:
//1.先创建一个WeatherData对象(主题),
//2.然后通过主题对象(WeatherData)作为观察者构造函数的参数构造
//观察者对象(包括CurrentConditionsDisplay、StatisticsDisplay以及 )
//3.在创建观察者对象时,在其构造函数中把其加入到主题中。所以在观察者类中
//将包括一个私有的WeatherData类成员,即这就是所谓的组合类。
//4.然后WeatherData对象调用setMeasurements函数时,将会最终调用观察者类的update函数
//(这是由于WeatherData类中有list<Observer*>的私有类型,拿来存放观察者的多个类),同时
//而在update函数中将调用display函数,最后将WeatherData对象调用setMeasurements函数的设置的结果
//展现到界面上。
//5.在观察者类中调用析构函数时将从主题中移除。
X(){}
}
声明一个对象X obj或者X obj=X()都可以
//程序是这样设计的: //1.先创建一个WeatherData对象(主题), //2.然后通过主题对象(WeatherData)作为观察者构造函数的参数构造 //观察者对象(包括CurrentConditionsDisplay、StatisticsDisplay以及 ) //3.在创建观察者对象时,在其构造函数中把其加入到主题中。所以在观察者类中 //将包括一个私有的WeatherData类成员,即这就是所谓的组合类。 //4.然后WeatherData对象调用setMeasurements函数时,将会最终调用观察者类的update函数 //(这是由于WeatherData类中有list<Observer*>的私有类型,拿来存放观察者的多个类),同时 //而在update函数中将调用display函数,最后将WeatherData对象调用setMeasurements函数的设置的结果 //展现到界面上。 //5.在观察者类中调用析构函数时将从主题中移除。