немного ООП

Тема в разделе "WASM.BEGINNERS", создана пользователем vanilly_cpp, 7 мар 2008.

  1. vanilly_cpp

    vanilly_cpp New Member

    Публикаций:
    0
    Регистрация:
    29 ноя 2007
    Сообщения:
    68
    Прошу прошения за отход от тематеки сайта, но я думаю что наибольшее колличество специалистов во всех областях программирования обитают именно здесь!

    мой вопрос следующий:

    есть базовый класс

    Код (Text):
    1. class TextParser
    2. {
    3. public:
    4.     TextParser(const String& text, const String& div_sym);
    5.     TextParser(const String& text);
    6.  
    7.     String  get_next_word();
    8.  
    9.     Void    set_text(const String&);   
    10.     Void    set_deviders(const String& div_sym);
    11.  
    12. protected:
    13.  
    14.     MemBuffer   m_text;
    15.     CharHolder  m_devide_symbols;
    16. };
    и наследованный от него

    Код (Text):
    1. class MordParser : public TextParser
    2. {
    3.     typedef TextParser Parent;
    4.  
    5. public:
    6.     MordParser(const String& text);
    7.  
    8.     Void    put_next_word(const String&);
    9. };
    так вот мне необходимо сделать так чтобы ф-ии
    Void set_text(const String&);
    Void set_deviders(const String& div_sym);

    которые являються public в базовом классе слтали private или protected в наследнеке!
    можно ли такое сделать и если можно то как?
     
  2. EvilPhreak

    EvilPhreak New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2007
    Сообщения:
    154
    вугага. +1. тока в хип.
     
  3. Stiver

    Stiver Партизан дзена

    Публикаций:
    0
    Регистрация:
    18 дек 2004
    Сообщения:
    812
    Адрес:
    Germany
    vanilly_cpp
    Прошу прошения за отход от тематеки сайта, но я думаю

    С чем тебя и поздравляем :) (кроме процитированной фразы в сообщении ничего нет)
     
  4. EvilPhreak

    EvilPhreak New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2007
    Сообщения:
    154
    я тоже думаю. иногда =)
     
  5. vanilly_cpp

    vanilly_cpp New Member

    Публикаций:
    0
    Регистрация:
    29 ноя 2007
    Сообщения:
    68
    Да, ребят я тоже поржал, просто написал начало, пошол чаек заколбосить, а котяра сволочь на клаву залез и добавил мессагу ))))
     
  6. Torvald

    Torvald New Member

    Публикаций:
    0
    Регистрация:
    3 мар 2008
    Сообщения:
    9
  7. EvilPhreak

    EvilPhreak New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2007
    Сообщения:
    154
    vanilly_cpp
    Нет такого нельзя сделать. Спецификаторы доступа строятся по нисходщей по ограничениям. Если только породить новые метод в наследнике, который будет иметь соответствующий нужный спецификатор доступа.
     
  8. device

    device Reflection

    Публикаций:
    0
    Регистрация:
    26 апр 2007
    Сообщения:
    1.198
    Адрес:
    RF
    Код (Text):
    1. public interface privatable{
    2. public void myVoid();
    3. protected void myVoid(int h);
    4. }
    5.  
    6. public class MyClass implements privatable{
    7.  
    8.    public void myVoid(){}
    9.    protected void myVoid(int h){ myVoid();}
    10. }
    Дааа...
     
  9. Sol_Ksacap

    Sol_Ksacap Миша

    Публикаций:
    0
    Регистрация:
    6 мар 2008
    Сообщения:
    623
    Код (Text):
    1. class TextParser
    2. {
    3. public:
    4.     TextParser(const String& text, const String& div_sym);
    5.     TextParser(const String& text);
    6.  
    7.     String  get_next_word();
    8.  
    9.     Void    set_text(const String&);   
    10.     Void    set_deviders(const String& div_sym);
    11.  
    12. protected:
    13.  
    14.     MemBuffer   m_text;
    15.     CharHolder  m_devide_symbols;
    16. };
    class MordParser : protected TextParser
    Код (Text):
    1. class MordParser : protected TextParser
    2. {
    3.     typedef TextParser Parent;
    4.  
    5. public:
    6.     MordParser(const String& text) : TextParser(text) {};
    7.     String  get_next_word() {return TextParser::get_next_word();}
    8.  
    9.     Void    put_next_word(const String&);
    10. };
     
  10. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Ещё вариантец
    Код (Text):
    1. class MordParser : public TextParser
    2. {
    3.     typedef TextParser Parent;
    4.  
    5. public:
    6.     MordParser(const String& text);
    7.  
    8.     Void    put_next_word(const String&);
    9. protected:
    10.          Void   set_text(const String& str)
    11.          {
    12.             TextParser::set_text(str);
    13.          }
    14. };
    Правда обходиться он так:
    MordParser parser;
    parser.TextParser::set_text("bla ,bla");

    Задача была -
    Имхо это подходит, так как в наследнике он теперь защищённый.