并不相同!!
!number%2 != !(number%2)
在构造函数中使用另一个构造函数来初始化
class Foo() { ...; }
//--- erro: mem-initializer of 'Foo::m_val' follows constructor delegation
class Foo(int val): Foo() , m_val(val) {}
由其他构造函数来代理,则默认由另一个构造函数来初始化所有成员
solution:
class Foo(int val):m_val(val) {}
class Foo():Foo(0) {}
使用模板类作为基类
template <class T>
class Base
{
protected:
T _x;
};
template <class T>
class More: public Base<T>
{
T getX() { return _x; }//在vs中通过编译,g++则编译失败, error:_x未声明
}
写一个继承自模板基类的模板类时,不能直接使用名称来引用基类的成员
需要告诉编译器在哪里查找名称
solution:
template <class T>
class More: public Base<T>
{
T getX() { return this->_x; }
}