1.别自己把自己搞糊涂了。只记住一条:基类构造函数肯定要再派生类前面调用就行了。这个关系是基本准则,其他一切都是根据这个来的。
2.如果A派生出B,B派生出C,那么A中的纯虚函数能不能在B中不实现,而只在C中实现?
这看你要怎么用了。如果你不准备实例化B,当然是可以的。如果你要实例化B,必须在B中实现。
这句话不严谨。如果派生类不准备实例化,当然不需要实现。就像你举的例子中的B一样。
3.(a++)+b 这个和a+++b 的值,说实话,这样的讨论真的没意义,完全看编译器怎么做。VS2008中,(a++)+b =3.编译器等这句话执行完了以后才将a赋值为2.如果这样写严重奇异,代码基本没法看。如果是想结果等于3,而a执行后等于2.应该这样写:a+b;a++;明确写2行。
a+++b,同理。这句话等于这么写:a+b;++b;
如果你想结果等于4(第一个),那么就明确这么写:a++;a+b.不要搞那种没有任何意义的简写。