在C 方法中使用using的意義

2021-10-20 12:03:52 字數 801 閱讀 8248

在c#函式方法體中使用using,表明乙個類只能在當前方法體中存在,出了方法體就會呼叫該函式的析構函式。

但是該類必須實現了idisposable介面,並且除非該類的析構函式定義為虛函式且子類重寫了,否則都只會呼叫該類的析構函式,並不會像c++釋放全部記憶體,依然還是要clr去管理。

與c++基類定義為虛函式了,子類析構則自動呼叫子類析構再父類析構不同,c++基類析構定義為虛函式則是後繫結,動態聯編,會釋放全部記憶體。

c#:

class a : idisposable

public virtual void dispose()

}class b : a

public override void dispose()

}class program

console.writeline("1");

}}

c#輸出:

a construct

b construct

b dispose(因為override了,否則都是只呼叫a的析構)

c++:

#include#include#includeusing namespace std;

class a

virtual ~a() };

class b : public a

~b() };

int main()

c++輸出:

a construct

b construct

b dispose

a dispose

C 11中使用using的方法

在 c 中 using 用於宣告命名空間,使用命名空間也可以防止命名衝突。在程式中宣告了命名空間之後,就可以直接使用命名空間中的定義的類了。在 c 11 中賦予了 using 新的功能,讓 c 變得更年輕,更靈活。在 c 中可以通過 typedef 重定義乙個型別,語法格式如下 typedef 舊的...

C 中使用using的三種方法

c 中使用using的三種方法 using 命名空間,這種方法基本學習過c 的都用過,好處在於,寫 的時候不需要指定詳細的命名空間 using system.windows.media using system.windows.media.imaging 是用來簡化資源釋放的,在一定的範圍內有效,除...

C 中使用using的三種方法

using 命名空間,這種方法基本學習過c 的都用過,好處在於,寫 的時候不需要指定詳細的命名空間 using system.windows.media using system.windows.media.imaging 是用來簡化資源釋放的,在一定的範圍內有效,除了這個範圍時,自動呼叫idisp...