История изменений
Исправление alysnix, (текущая версия) :
Есть ограниченное наследование интерфейсов. Чего нет, так это наследования реализации, но тут такая проблема: любая вменяемая книга по ООП, выпущенная в 90х и позже всячески советует наследование реализации избегать.
вот вопрос. как это написать на расте.
using cstring = const std::string;
class Named{
cstring _name;
public:
Named(cstring &fname):_name(fname){}
cstring &name()const{return _name;}
};
class Foo:public Named{
Foo(cstring &fname):Named(fname){}
};
void fff(){
Foo lfoo("foo");
std::cout<<lfoo.name();
}
Исходная версия alysnix, :
Есть ограниченное наследование интерфейсов. Чего нет, так это наследования реализации, но тут такая проблема: любая вменяемая книга по ООП, выпущенная в 90х и позже всячески советует наследование реализации избегать.
вот вопрос. как это написать на расте.
using cstring = const std::string;
class Named{
cstring _name;
public:
Named(cstring &fname):_name(fname){}
const cstring &name()const{return _name;}
};
class Foo:public Named{
Foo(cstring &fname):Named(fname){}
};
void fff(){
Foo lfoo("foo");
std::cout<<lfoo.name();
}