автоматическая перегрузка абстрактных методов
От: Антибиотик Россия  
Дата: 12.04.08 05:14
Оценка:
народ, кто-нибудь знаком с каким-либо плагином для visual c++, который делает приблизительно следующее:
1. есть полностью абстрактный класс; когда создаем наследника от него, то нужно, чтобы студия автоматически добавляла определения методов, которые нам так и так нужно перегружать
2. есть интерфейс класса, необходимо в файле реализации автоматически добавить пустую реализацию всех методов. студия уже имеет делать нечто подобное, когда добавляешь методы из class viewer c помощью add function или когда, работая с COM, используешь implement interface
Re: автоматическая перегрузка абстрактных методов
От: Sni4ok  
Дата: 12.04.08 08:08
Оценка: +1 -1
Здравствуйте, Антибиотик, Вы писали:

А>1. есть полностью абстрактный класс; когда создаем наследника от него, то нужно, чтобы студия автоматически добавляла определения методов, которые нам так и так нужно перегружать


заведомо нет методов которые нужно перегружать, так как наследник абстракного класса — сам может быть абстрактным классом.
Re: автоматическая перегрузка абстрактных методов
От: Qbit86 Кипр
Дата: 12.04.08 09:46
Оценка:
Здравствуйте, Антибиотик, Вы писали:

Это называется не перегружать, а переопределять. Это разные вещи!
Глаза у меня добрые, но рубашка — смирительная!
Re[2]: автоматическая перегрузка абстрактных методов
От: Roman Odaisky Украина  
Дата: 12.04.08 09:51
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>Это называется не перегружать, а переопределять. Это разные вещи!


s/переопределять/определять/

Класс абстрактный всё-таки.
До последнего не верил в пирамиду Лебедева.
Re[2]: автоматическая перегрузка абстрактных методов
От: Roman Odaisky Украина  
Дата: 12.04.08 10:02
Оценка:
Здравствуйте, Sni4ok, Вы писали:

А>>1. есть полностью абстрактный класс; когда создаем наследника от него, то нужно, чтобы студия автоматически добавляла определения методов, которые нам так и так нужно перегружать


S>заведомо нет методов которые нужно перегружать, так как наследник абстракного класса — сам может быть абстрактным классом.


А минус за что? Я тоже так считаю.

Например:
// для ясности
#define interface class
#define extends :
#define implements :

interface Displayable
{
public:
    void display(Device& device, Position pos) const
    {
        doDisplay(device, pos);
        device.repaint();
    }

private:
    virtual void doDisplay(Device &, Position) = 0;
};

class Window implements Displayable
{
public:
    . . .
private:
    void doDisplay(Device &, Position);
};

interface AlphaDisplayable extends Displayable
{
public:
    void display(Device& device, Position pos, AlphaChannelParameters const& params)
    {
        doDisplay(device, pos, params);
        device.repaint(params);
    }

private:
    virtual void doDisplay(Device &, Position, AlphaChannelParameters const &) = 0;
};

class CompositeWindow implements AlphaDisplayable
{
public:
    . . .
private:
    void doDisplay(Device &, Position);
    void doDisplay(Device &, Position, AlphaChannelParameters const &);
};

Как здесь определить, где что?
До последнего не верил в пирамиду Лебедева.
Re[3]: автоматическая перегрузка абстрактных методов
От: Qbit86 Кипр
Дата: 12.04.08 10:24
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

RO>Класс абстрактный всё-таки.


В нём могут быть уже определены некоторые чисто виртуальные методы.
Глаза у меня добрые, но рубашка — смирительная!
Re[3]: автоматическая перегрузка абстрактных методов
От: stab http://www.visualtasktips.com/
Дата: 12.04.08 14:28
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

RO>А минус за что? Я тоже так считаю.


Минус, т.к. теоритические рассуждения, в данном случае, не имеют отношения к делу. Для C# подобный механизм встроен в редактор студии, одним нажатием можно сгенерировать болванки для реализации методов интерфейса или абстрактных методов предков. Для C++ такого встроенного механизма, к сожалению, нет, хотя реализовать его возможно.
Re[4]: автоматическая перегрузка абстрактных методов
От: Zigmar Израиль  
Дата: 13.04.08 07:19
Оценка:
Здравствуйте, stab, Вы писали:
S>Для C++ такого встроенного механизма, к сожалению, нет, хотя реализовать его возможно.
В общем случае — нельзя. Можно реализовать какой-нибудь костыль, который будет работать для простейших случаев.
"To protect people you must slay people. To let people live you must let people die. This is the true teaching of the sword."
-Seijuro Hiko, "Rurouni Kensin"
Re[3]: автоматическая перегрузка абстрактных методов
От: Vain Россия google.ru
Дата: 13.04.08 12:11
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

Q>>Это называется не перегружать, а переопределять. Это разные вещи!

RO>s/переопределять/определять/
^^^^^^
Объясните формат этой строчки, а то не первый раз уже вижу и не только здесь
Что значит префикс s?
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re[4]: автоматическая перегрузка абстрактных методов
От: Qbit86 Кипр
Дата: 13.04.08 12:23
Оценка:
Здравствуйте, Vain, Вы писали:

V>Здравствуйте, Roman Odaisky, Вы писали:


RO>>s/переопределять/определять/

V>^^^^^^
V>Объясните формат этой строчки, а то не первый раз уже вижу и не только здесь :)
V>Что значит префикс s?

Видимо, это отсылка к Sed, но могу и ошибаться, т. к. с *nix'ами у меня напряжённые отношения :)
Глаза у меня добрые, но рубашка — смирительная!
Re[5]: автоматическая перегрузка абстрактных методов
От: Ulitka США http://lazarenko.me
Дата: 13.04.08 13:09
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>Видимо, это отсылка к Sed, но могу и ошибаться, т. к. с *nix'ами у меня напряжённые отношения


http://www.gnu.org/software/sed/manual/sed.html#The-_0022s_0022-Command
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.