Другой вопрос по D
От: LIS  
Дата: 10.06.05 13:48
Оценка:
В связи с напором рекламы начал потихоньку тыкать D, и натЫкнулся на интересный момент:

1. Объявляем в интерфейсе метод с уровнем доступа public, а в классе реализуем его с уровнем доступа protected — D молча компилит, но если попробуем public -> private или protected -> private — компилятор ругается, что интерфейс не определен.

module test;

interface ITest
{
    public char[] ToString();
}

class Test: ITest
{    
    public: this() {}
    
    protected char[] ToString()
    {
        return "class Test\n";
    }
}

int main(char[][] args)
{
    Test t = new Test();
    
    ITest i = cast(ITest)(t);
    printf(i.ToString());
    
    return 0;
}


2. Объявляем в интерфейсе метод с уровнем доступа private ( ), в классе его вообще не реализуем — компилиться на ура.

module test;

interface ITest
{
    private char[] ToString();
    public char[] XToString();
}

class Test: ITest
{    
    public: this() {}
    
    public char[] XToString()
    {
        return "class Test\n";
    }
}

int main(char[][] args)
{
    Test t = new Test();
    
    ITest i = cast(ITest)(t);
    printf(i.XToString());
    
    return 0;
}


Возникает вопрос — это баги или фичи? Шарп такое вроде не позволяет, но с другой стороны, наверно с этим можно чего-нить полезное сделать
Re: Другой вопрос по D
От: c-smile Канада http://terrainformatica.com
Дата: 10.06.05 19:19
Оценка:
Здравствуйте, LIS, Вы писали:

Это не ко мне и не здесь:
на news.digitalmars.com есть соотв. группа там имеет смысл спросить.
Мой ответ — не знаю — надо разбираться и вдумываться — может оно так и надо .
Re[2]: Другой вопрос по D
От: VladD2 Российская Империя www.nemerle.org
Дата: 12.06.05 10:31
Оценка: 1 (1)
Здравствуйте, c-smile, Вы писали:

CS>Это не ко мне и не здесь:

CS>на news.digitalmars.com есть соотв. группа там имеет смысл спросить.
CS>Мой ответ — не знаю — надо разбираться и вдумываться — может оно так и надо .

Ну, вот. А я уже было задумался о внесении предложения о создании отдельного форума для Ди.
... << RSDN@Home 1.1.4 beta 7 rev. 466>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.