Каковы ключевые слова 'ref' и 'запечатанные' в С++?

Я только что видел какой-то (предположительно) код на С++, который запрещает мне два "ключевых слова" (я предполагаю ключевые слова, но, поскольку у меня нет контекста, они могут быть простыми #define вещами).

Они также, кажется, не появляются в стандарте С++ 11, по крайней мере, у проекта, который у меня есть, но, поскольку это довольно поздний черновик, я не могу представить, что они просто попали в стандарт в последнюю минуту, Они ref и sealed.

Код, в котором я их нашел, был примерно таким:

public ref class DevIface sealed {
    private:
        int currOffset;
public:
        DevIface (int initOffset);
        : : :

Кто-нибудь знает, что представляют собой эти ключевые слова и что они должны достичь?

Ответы

Ответ 1

Это С++/CLI.

A ref class - управляемый тип.
sealed означает, что класс не может быть унаследован

Ответ 2

sealed в С++/CLI примерно эквивалентен final в С++ 11.

Ответ 3

Таким образом, резюме состоит в том, что "ref" и "sealed" не являются стандартными ключевыми словами С++. Они используются в версии microsoft.

Ответ 4

Если вы интересуетесь новым использованием C + + CX этих ключевых слов для разработки WinRT API в MS Visual С++, вы можете наслаждаться этим видео: http://channel9.msdn.com/events/BUILD/BUILD2011/TOOL-532T с этими слайдами: http://video.ch9.ms/build/2011/slides/TOOL-532T_Sutter.pptx. См. слайды 8-13. Существуют и другие переговоры с еще большей информацией, упомянутой на слайде 29.