Можете ли вы объявить тип переменной, который ожидает класса и протокола в target-c? - PullRequest
1 голос
/ 07 мая 2010

Я знаю, что вы можете сделать одно из следующих действий при объявлении типа переменной в цели c:

id obj0;
MyClass *obj1;
id<MyProtocol> obj2;

Что меня интересует, так это если это правильно (синтаксически и семантически):

MyClass<MyProtocol> *obj3;

Что я хочу, это хранить класс какао, который должен реализовывать данный протокол в этой переменной; если бы у меня был контроль над «MyClass», мне бы это не понадобилось, но я в основном задаюсь вопросом, могу ли я обойтись без необходимости создавать собственный абстрактный класс, от которого должны наследовать несколько других разрозненных классов, в противном случае они могут просто наследовать » MyClass "напрямую.

1 Ответ

3 голосов
/ 07 мая 2010

Да.

MyClass<MyProtocol> *obj3;

означает, что obj3 должен быть указателем на объект типа MyClass или подкласс, который также реализует MyProtocol.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...