Зачем консоли нужно два двоеточия в C ++ / CLI? - PullRequest
0 голосов
/ 04 апреля 2020

В C# мы делаем:

Console.WriteLine("C#");

В C ++ / CLI мы используем этот синтаксис для использования объекта консоли.

Console::WriteLine("C++ CLI");

Мы используем. NET объект Console в обоих местах, так почему мы получаем доступ к его функции-члену WriteLine() с точкой (.) в проекте C#, но с двумя двоеточиями в проекте C ++ / CLI?

Из книги по C ++ / CLI говорит, что Console является классом в пространстве имен System, так почему оператор ::? Это другой consol е класс все вместе? Пространство имен system также отличается от пространства в C#? если так, то почему они назвали его так же?

1 Ответ

3 голосов
/ 04 апреля 2020

Это связано с тем, что WriteLine является методом c stati:

// C#
public static void WriteLine (string value);

и оператор разрешения области действия :: используется для вызова методов stati c в C ++

См. Как мне вызвать метод stati c другого класса (в C ++)

...