Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.10.2012, 17:27   #1
p789
Новичок
Джуниор
 
Регистрация: 22.10.2012
Сообщений: 1
По умолчанию виртуальные методы

Здравствуйте! Подскажите пожалуйста с вопросами по данной задаче:
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
class Calc
{
    public virtual double m1(double arg)
    {
        return 2 * arg;
    }
}
class Calc1 : Calc
{
    public override double m1(double arg)
    {
        return base.m1(arg) * 3;  // переопределить метод m1 и вернуть утроенное значение arg. правильно сделано?
    }
}
class Calc2:Calc{
    return  ;   //как здесь сделать, чтобы возвращался результат m1() из базового класса умноженное на 2?
}
class CalcUser{
double useCalc(Calc calc, double arg){
    return calc.m1(arg);
    }
}
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Calc c= new Calc();
            Calc1 c1 = new Calc1();
            Calc2 c2=new Calc2();
            // как вызвать метод useCalc() для каждого из экземпляров классов?
            
        }
    }
}
p789 вне форума Ответить с цитированием
Старый 23.10.2012, 10:36   #2
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
По умолчанию

У кого списали?))
Цитата:
// переопределить метод m1 и вернуть утроенное значение arg. правильно сделано?
Да
Цитата:
//как здесь сделать, чтобы возвращался результат m1() из базового класса умноженное на 2?
Код:
public override double m1(double arg)
    {
        return base.m1(arg) * 2;
    }
Цитата:
// как вызвать метод useCalc() для каждого из экземпляров классов?
Непонятно, что вы вообще делали...
1) useCalc делаем public
2)
Код:
var cu= new CalcUser();
cu.useCalc(c,0.1);
cu.useCalc(c1,0.1);
cu.useCalc(c2,0.1);
dampirik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Виртуальные методы. Почему бы всегда не использовать их? haruhi Общие вопросы C/C++ 7 26.11.2011 16:44
Виртуальные методы peplenko C# (си шарп) 8 09.04.2011 04:40
Почему виртуальные методы и деструкторы нельзя делать шаблонными??? mike_tihomirov Общие вопросы C/C++ 3 14.12.2010 15:03
Виртуальные методы Kn793 Общие вопросы C/C++ 5 26.06.2010 15:08
Полиморфизм и виртуальные методы Викдон Общие вопросы Delphi 1 02.02.2009 04:40