Вам нужен конструктор «преобразования», который принимает const char*
:
mystring( char const* ss) {
cout << "mystring : mystring(char*) ctor : " << ss <<endl;
s = ss;
}
Строка, с которой у вас возникли проблемы:
mystring str1 = "abc"; // why COMPILE ERROR
на самом деле не назначение - это инициализатор.