Sorry for the separate thread. I didn't realize my post last night caused so much confusion.
Here is the code and compiler error:
In file base.h
Code:
class Base{
public:
virtual void foo(string s="")=0;
virtual ~Base(){}
};
In file derived.h
Code:
#include "base.h"
class Derived:public Base{
public:
void foo(string s="");
~Derived(){}
};
In file derived.cc
Code:
#include "derived.h"
void Derived::foo(string s="")
{
}
In file main.cc
Code:
#include "base.h"
#include "derived.h"
Based* ptr = new Derived;
ptr->foo();
Error: default argument given to parameter 1 in derived.cc line 3