Каково различие между статической переменной в C++ по сравнению с C#?

Статические переменные имеют ту же или схожую функциональность в C#, как они делают в C++?

Править:

С C++ можно использовать статические переменные во многих различных контекстах - таких как: 1) Глобальные переменные, 2) Локальные функциональные переменные, 3) Участники класса - Были бы подобные использования в C# вести себя подобные C# C++?

6
задан NTDLS 22 February 2010 в 03:55
поделиться

2 ответа

Например:

class MyClass
{
   public:
   MyClass()
   {x = 0;}
   MyClass(int X)
   {x = X;}
   private:
   int x;
};

int main()
{
   MyClass myObject(56); // initialize x to value '56'
   MyClass myObject2; //calls default constructor and initializes x to 0
   return 0;
}
-121--2661056-

Вы уверены, что функция возвращает m _ refCount ?

Я считаю, что доступ к члену переменным или методам после удаления объекта не определен в соответствии со стандартом, и никогда нельзя надежно это сделать.

Я думаю, что это может сработать только в путь, если метод Release () создаст локальную переменную в стеке с копией ссылочного числа, и это будет возвращено с помощью оптимизации возвращаемого значения .

-121--4903705-

Статический имеет несколько значений в C++.

Статические переменные в C # в основном имеют только одно значение: переменные относятся к типу. В C # статическая переменная типа используется для обозначения переменной в области типа. Статический для метода - это метод в области типа. Static также можно использовать для класса, чтобы указать, что весь класс состоит только из статических методов, свойств и полей.

Нет эквивалента статическим переменным в области действия функции или статическим значениям, не входящим в область действия класса.


Edit:

В ответ на изменение C # в основном использует статику только для членов класса. Глобальные и локальные переменные статических функций не поддерживаются в C #. Кроме того, как я уже упоминал выше, можно пометить целый класс «static», что в основном просто заставляет компилятор проверять отсутствие нестатических членов в классе.

6
ответ дан 17 December 2019 в 00:08
поделиться

Статическая переменная в C # ведет себя как статическая переменная-член в C ++. Это из множества значений ключевого слова static в C ++ только одно из них существует в контексте C #. Например. вы не можете ограничить область видимости файлом с помощью static (что является строго функцией C) в C #

0
ответ дан 17 December 2019 в 00:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: