Was ist der Unterschied zwischen den folgenden Erklärungen (in C++/CLI):C++/CLI-Interface-Klasse vs. Schnittstelle struct
public interface class IC {};
public interface struct IS {};
ähnlichen Situationen:
public enum class EC {};
public enum struct ES {};
?
Jetzt, wenn ich das weiß, denke ich, dass das redundante Konstrukt eingeführt wurde, weil die Schöpfer von C++/CLI darauf abzielten, die Anzahl der neuen Schlüsselwörter zu reduzieren. Aus diesem Grund haben sie eine Lösung entwickelt, die als kontextsensitive Schlüsselwörter bezeichnet wird. Sie konnten das Schlüsselwort "interface" nicht einführen, weil es mit vielen bereits geschriebenen Quellcodes kollidieren würde (z. B. "interface" -Typname). Also haben sie sich wahrscheinlich dafür entschieden, es mit dem Klassenschlüsselwort zu verbinden, nur um einen Kontext zu erstellen, und mit dem Schlüsselwort struct, um konsistent zu sein. –