Прошу прошения за отход от тематеки сайта, но я думаю что наибольшее колличество специалистов во всех областях программирования обитают именно здесь! мой вопрос следующий: есть базовый класс Код (Text): class TextParser { public: TextParser(const String& text, const String& div_sym); TextParser(const String& text); String get_next_word(); Void set_text(const String&); Void set_deviders(const String& div_sym); protected: MemBuffer m_text; CharHolder m_devide_symbols; }; и наследованный от него Код (Text): class MordParser : public TextParser { typedef TextParser Parent; public: MordParser(const String& text); Void put_next_word(const String&); }; так вот мне необходимо сделать так чтобы ф-ии Void set_text(const String&); Void set_deviders(const String& div_sym); которые являються public в базовом классе слтали private или protected в наследнеке! можно ли такое сделать и если можно то как?
vanilly_cpp Прошу прошения за отход от тематеки сайта, но я думаю С чем тебя и поздравляем (кроме процитированной фразы в сообщении ничего нет)
Да, ребят я тоже поржал, просто написал начало, пошол чаек заколбосить, а котяра сволочь на клаву залез и добавил мессагу ))))
vanilly_cpp Нет такого нельзя сделать. Спецификаторы доступа строятся по нисходщей по ограничениям. Если только породить новые метод в наследнике, который будет иметь соответствующий нужный спецификатор доступа.
Код (Text): public interface privatable{ public void myVoid(); protected void myVoid(int h); } public class MyClass implements privatable{ public void myVoid(){} protected void myVoid(int h){ myVoid();} } Дааа...
Код (Text): class TextParser { public: TextParser(const String& text, const String& div_sym); TextParser(const String& text); String get_next_word(); Void set_text(const String&); Void set_deviders(const String& div_sym); protected: MemBuffer m_text; CharHolder m_devide_symbols; }; class MordParser : protected TextParser Код (Text): class MordParser : protected TextParser { typedef TextParser Parent; public: MordParser(const String& text) : TextParser(text) {}; String get_next_word() {return TextParser::get_next_word();} Void put_next_word(const String&); };
Ещё вариантец Код (Text): class MordParser : public TextParser { typedef TextParser Parent; public: MordParser(const String& text); Void put_next_word(const String&); protected: Void set_text(const String& str) { TextParser::set_text(str); } }; Правда обходиться он так: MordParser parser; parser.TextParser::set_text("bla ,bla"); Задача была - Имхо это подходит, так как в наследнике он теперь защищённый.