Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
 
Dzhej-Dzhej
Заблокирован
#1

Как описать виртуальную функцию - Visual Basic .NET

03.02.2011, 11:07. Просмотров 1096. Ответов 2
Метки нет (Все метки)

Всем доброго времени суток.
Столкнулся с такой проблеммой: хочу написать базовый класс и в нем среди всего прочего несколько виртуальных функций(т.е. их код будет реализован в каждом наследнике класса по-своему)
В С++, к примеру, есть зарезервированное слово "virtual" для этих целей.
Есть ли в vb.net похожий механизм и как правильно его реализовать?

Зараннее благодарен.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.02.2011, 11:07
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как описать виртуальную функцию (Visual Basic .NET):

Описать функцию Sign(X) целого типа, возвращающую для вещественного числа X
Описать функцию Sign(X) целого типа, возвращающую для вещественного числа X следующие значения: −1, если X < 0; 0, если X = 0; 1, если X...

Вызвать экранную виртуальную клавиатуру
Как при нажатии на Textbox вызвать экранную клавиатуру? Что я только не пробовал: Process.Start("C:\Windows\System32\osk.exe") ...

Блокировка рабочего стола windows - внедрить виртуальную клавиатуру
Господа как можно прикрутить к этой программке экранную клавиатуру?

Приложение за час съедает виртуальную память. Оптимизация, поиск эффективных алгоритмов
Добрый день! Приложение берет URL с массива, и с помощью WebKitBrowser (либо WebBrowser) открывает их, проблема в том, что через час...

Как кодом описать формулу?
Здравствуйте, помогите пожалуйста написать программу для формулы Z=(G1-G2)/2, при этом, значения G1 и G2 вводить самостоятельно, заранее...

Хэндлер и сигнатура метода. Как описать?
Добрый день всем. Есть у меня кусочек кода: Imports OrderToAloha Imports OrderToAloha.OrderToAloha Imports DataReciver ...

2
Eugene22
_
2349 / 1222 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
03.02.2011, 12:42 #2
Ну это зависит от того какая именно виртуальная функция используется. Если чисто виртуальная функция без функционала, а класс абстрактный, то абстрактный класс помечаешь модификатором MustInherit, у функции в базовом классе вместо virtual пишешь MustOverride, а в производном классе к этой функции добавляешь модификатор Overrides.

Если виртуальная функция имеет фунционал, а класс не абстрактный, то у фукции базового класса приписываешь модификатор Overridable, а в производном классе к этой функции также добавляешь модификатор Overrides

например, если класс абстрактный
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Figure
{
public:
    virtual int GetSquare() = 0;
 
};
class Qvadrat : public Figure
{
private:
int side;
public:
    void SetSide(int _side) {side=_side;}
    int GetSquare()
    {return side*side;}
};
аналог на VB.NET
vb.net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
MustInherit Class Figure
        Public MustOverride Function GetSquare() As Integer
    End Class
 
    Class Qvadrat
        Inherits Figure
        Private side As Integer
 
        Public Sub SetSide(ByVal _side As Integer)
            side = _side
        End Sub
 
        Public Overrides Function GetSquare() As Integer
            Return side * side
        End Function
    End Class
1
Dzhej-Dzhej
Заблокирован
03.02.2011, 13:21  [ТС] #3
Eugene22, спасибо, я только хотел дополнить тему вопросом об абстрактных классах, а ответ уже готов
премного благодарен
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.02.2011, 13:21
Привет! Вот еще темы с решениями:

Не знаю как описать. посмотрите плз)
Дело в том что запускаю только написанную прогу.. в ней функция считать оределённый символ Label3.Text =...

Как описать нажатие клавиш Ctrl+Enter?
Здравствуйте. Подскажите пожалуйста как написать код, который определял бы нажатие одновременно клавиш Ctrl+Enter? Вот этот код не...

Как через базовый класс вызывать виртуальную функцию во всех потомках?
Ну например, есть класс: class BATYANA { BATYANA(); virtual ~BATYANA(); virtual int Test(); }

Как "наплевать" на механизм позднего связывания и вызвать любую виртуальную функцию?
Есть базовый класс А с виртуальной функцией f1, у него есть несколько потомков. Как "наплевать" на механизм позднего связывания и вызвать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru