Const char foo[] = "gives me an error"

But is that necessarily a problem? String literals are eternal and immutable anyway, so I think that this would be the desired behavior for the copy constructor of such a class.
If it were a non-const pointer, you could come across some unpleasant surprises, but for a member of const char *, I think this shouldn't be an issue.