I\'m using g++ version 4.2.1 with -Wextra enabled. I\'m including a header from a library, and I keep getting the following warning about a class in the library, which is enable
Given:
class BaseClass
{
public:
BaseClass();
BaseClass(const BaseClass&);
};
class DerivedClass : public BaseClass
{
public:
DerivedClass(const DerivedClass&);
};
This copy constructor:
DerivedClass::DerivedClass(const DerivedClass& obj)
// warning: no BaseClass initializer!
{
}
Really means the same as:
DerivedClass::DerivedClass(const DerivedClass& obj)
// Default construct the base:
: BaseClass()
{
}
You can put in a default-constructor initializer like the above if that's really what you mean, and the warning will go away. But the compiler is suggesting that you might actually want this instead:
DerivedClass::DerivedClass(const DerivedClass& obj)
// Copy construct the base:
: BaseClass(obj)
{
}