C++与C# 中static 成员变量的区别
C#中
?
類的靜態成員變量(m_Number)可以通過非靜態的成員函數(GetNumber()、SetNumber())訪問
這樣,在外部,就可以new 一個類對象,通過調用該對象(sv)的GetNumber()、SetNumber()來間接訪問m_Number,
當然直接訪問還是必須通過類名.變量名的方式。
?
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace myClass_Object_Static { class StaticVariable { public static int m_Number; public StaticVariable() { m_Number = 1; } public void SetNumber(int number) { m_Number = number; } public int GetNumber() { return m_Number; } } }
?
?
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace myClass_Object_Static { class Program { static void Main(string[] args) { #region Static Variable StaticVariable sv = new StaticVariable(); sv.SetNumber(2); Console.WriteLine(sv.GetNumber()); Console.WriteLine(StaticVariable.m_Number); #endregion } } }
?
運行結果輸出兩行2
?
C++中
?
如果像上面C#那樣調用,就會報錯
即:不能在非靜態成員函數中,訪問靜態成員。
????? 靜態成員的訪問只能通過類名
?
?
總結
對于類的靜態成員方法,在C#和C++中,該類的其他成員函數都可以調用。
對于類的靜態成員變量,在C#中通過該類的靜態或非靜態成員方法均可訪問;在C++
中,通過類的靜態和非靜態成員方法均無法訪問。
?
轉載于:https://www.cnblogs.com/JarvisChu/archive/2011/05/14/2752484.html
總結
以上是生活随笔為你收集整理的C++与C# 中static 成员变量的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用CSS的 filter 来轻松实现图层
- 下一篇: 基于GDI+用C#编写的.NET流程图控