重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
“結構”是 Visual Basic 早期版本支持的用戶定義類型 (UDT) 的一般化。除字段外,結構還可以公開屬性、方法和事件。結構可以實現一個或多個接口,而您可以分別為每個字段聲明訪問級別。
創新互聯公司專業為企業提供瓊中黎族網站建設、瓊中黎族做網站、瓊中黎族網站設計、瓊中黎族網站制作等企業網站建設、網頁設計與制作、瓊中黎族企業網站模板建站服務,10年瓊中黎族做網站經驗,不只是建網站,更提供有價值的思路和整體網絡服務。
可以合并不同類型的數據項來創建結構。結構將一個或多個“元素”彼此關聯并且將它們與結構本身關聯。聲明了結構后,它將成為“復合數據類型”,而您可以聲明該類型的變量。
想讓單個變量持有幾個相關信息時結構很有用。例如,您可能想將一個雇員的姓名、電話分機號和薪金放在一起。可以對這些信息使用幾個變量,或者可以定義一個結構并將它用于單個雇員變量。當有許多雇員并且因此有該變量的許多實例時,結構的優點變得非常明顯。
使用 Structure 語句語句作為結構聲明的開始,并使用 EndStructure 語句作為結構聲明的結束。在這兩條語句之間必須至少聲明一個“元素”。元素可以是任何數據類型,但是至少一個必須是非共享變量,或是非共享非自定義事件。
不能在結構聲明中初始化任何結構元素。如果將一個變量聲明為結構類型,則可以通過變量訪問元素來給它們賦值。
聲明一個結構:
可以使用 Public、Protected、Friend或Private關鍵字指定結構的訪問級別,或者使用默認值 Public。如:
Private Structure employee
End Structure
向結構體添加元素:
結構必須具有至少一個元素。必須聲明結構的每個元素并指定其訪問級別。如果使用不含任何關鍵字的 Dim 語句 (Visual Basic),則可訪問性默認值為 Public。如:
Private Structure employee
Public givenName As String
Public familyName As String
Public phoneExtension As Long
Private salary As Decimal
Public Sub giveRaise(raise As Double)
salary *= raise
End Sub
Public Event salaryReviewTime()
End Structure
---------------------------
另外,關于你的問題,請參考下面C++/C對自定義類型的比較:
1、在C++中,不需使用typedef
struct Structure1 {
char c;
int i;
float f;
double d;
};
int main() {
struct Structure1 s1, s2;
s1.c = 'a'; // Select an element using a '.'
s1.i = 1;
s1.f = 3.14;
s1.d = 0.00093;
s2.c = 'a';
s2.i = 1;
s2.f = 3.14;
s2.d = 0.00093;
}
2、在C中,需用typedef定義
typedef struct {
char c;
int i;
float f;
double d;
} Structure2;
int main() {
Structure2 s1, s2;
s1.c = 'a';
s1.i = 1;
s1.f = 3.14;
s1.d = 0.00093;
s2.c = 'a';
s2.i = 1;
s2.f = 3.14;
s2.d = 0.00093;
}
在任意form類或模塊中都可以創建類,跟建立函數和過程一樣。
示例:
public class form1
‘創建一個屬于form的子類,名稱為【類名】。
public class 類名
’定義類成員text
public text as string
end class
‘定義一個【類名】類的公共變量。
dim 類名1 as 類名
’定義一個過程,使用【類名】類的text成員
public sub 過程
‘實例化【類名1】
類名1=new 類名
類名1.text=“賦值”
’定義一個【新類】類的私用變量,并實例化。
dim 新類1 as new 新類
新類1.name=“一個字符串”
新類1.age=12
end sub
end class
‘’‘創建一個與form同級的類,名稱為【新類】
public class 新類
public sub new()
end sub
public name as string
public age as integer
end class
在模塊中使用:
public class module1
dim a as new form1.類名
end module
1.不正確
Dim abc As myClass,定義一個可以引用myClass類型對象的變量abc。這個abc變量存在于棧上。
abc=New myClass。New myClass創建myClass實例對象,這個對象存在于托管堆上。然后(同時)讓abc引用(指向)這個對象。
abc變量在棧上,而對象在托管堆上。
abc儲存的是對象的地址,而不是對象本身。
看下面的代碼
Dim a As myClass,b As myClass,c As myClass
a=New myClass
b=a
c=a
整個過程中只創建了一個myClass對象,位于托管堆上。
三個myClass類型的變量a、b、c位于棧上,都指向了這一個myClass對象
2.類的成員分 實例成員 和 靜態成員
實例成員 必須在實例對象上調用
靜態成員 可以直接調用,不需要實例對象。