Наследование в C ++ / WinRT Windows Runtime Components - PullRequest
0 голосов
/ 25 октября 2019

У меня есть пара вопросов, связанных с наследованием в компонентах среды выполнения Windows, созданных с использованием C ++ / WinRT. Во-первых, почему существует ограничение, которое классы, если они имеют базовый класс, должны в конечном итоге наследовать от класса в пространстве имен Windows. *? 1001 *

Во-вторых, как лучше всего обойти это. На самом деле я не хочу, чтобы потребители могли получать данные из моего класса, но я бы хотел использовать базовый класс в реализации, чтобы не переписывать код. На данный момент мой класс реализации представляет собой облегченную оболочку вокруг стандартного класса C ++, который использует стандартное наследование C ++. Но есть ли способ упростить это? Можно ли перечислить один класс реализации в качестве базового класса другого? Я в основном знаком с C #, где множественное наследование невозможно, поэтому я не уверен в подобных вещах.

1 Ответ

0 голосов
/ 28 октября 2019

Любой класс времени выполнения (который вы объявляете в своем приложении), производный от базового класса, называется составным классом. Конечный базовый класс компонуемого класса должен быть типом, происходящим из пространства имен Windows. * ;.

И если вы хотите наследовать пользовательский класс времени выполнения, тесты Windows App Certification Kit будут выдавать ошибки. Из этого потока кажется, что вы можете объявить только собственный класс C ++ и реализовать интерфейсы. Пусть классы реализации наследуют от него.

...