導航:首頁 > 源碼編譯 > 類是在編譯時定義的

類是在編譯時定義的

發布時間:2023-07-06 00:39:10

A. C++中,只有類,沒有對象,編譯時是否會賦予類被分配空間的能力

你說的「空間」看來是指數據呢。那確實是不會。
另外對於函數,沒有被調用到,運行時就不會給它分配對應空間,這指的也是數據空間

代碼空間的話,類或者函數,都有。

B. C# 類的實例化是在 編譯時 還是 運行時發生的

同上,正確答案是在運行時,
NET程序在編譯的時候是由編譯器把C#代碼轉換成MSIL(微軟中間代碼),此時僅僅是對代碼進行了修改

在程序第一次運行的時候CLR(公共語言運行時)根據本地硬體特徵編譯生成最優化的二進制文件,存放在C盤對應版本的NET的緩存中,

之後才會調用CPU執行,執行的時候,如果遇到new關鍵字,才會在內存中實例化對象開辟空間

也就是說,在程序沒有執行之前,代碼還是代碼,new都沒有調用

C. C++類類型在說明時編譯器會給它開辟什麼內存空間

在你的類中由於你沒有編寫你自己的默認構造函數,所以執行語句A a1,a2,a3;時編譯器會調用編譯器提供的默認構造函數來生成三個對象。此時已經分配了內存空間,這些空間位於棧上,如果你用的是new關鍵字的話,這些內存將在自由存儲空間裡面分配,也就是在堆上,在C++中,程序員在堆上申請的內存空間,要自己負責釋放。

樓上的講錯了。

類的成員函數在內存中只有一份拷貝,而數據成員是每一個對象都有一份自己單獨拷貝,並且就是靠這些屬性來區分對象。
正是由於在成員函數中隱藏了this指針,所有成員函數會自動跟蹤對象。

D. java中什麼是類和對象

類就是具備某些共同特徵的實體的集合,它是一種抽象的數據類型,它是對所具有相同特徵實體的抽象。在面向對象的程序設計語言中,類是對一類「事物」的屬性與行為的抽象。舉一個例子說明下類,比如Person(人)就是一個類,那麼具體的某個人「張三」就是「人類」這個類的對象,而「姓名、身高、體重」等信息就是對象的屬性,人的動作比如「吃飯、穿衣」等就是對象的方法。總之類就是有相同特徵的事物的集合,而對象就是類的一個具體實例。同時類有多態和繼承,例如「人類」可以分為「男人、女人」,「老人、小孩」那麼「男人、女人」就是「人類」的子類等等。

Java語言中對類Person的定義往往如下:

public class Person {

private String name; //屬性:姓名

private int height; //屬性:身高

private int weight; //屬性:體重

public Person() {}

public Person(String name, int height, int weight) {

this.name = name;

this.height = height;

this.weight = weight;

}

//... some methods...

public void doSth() { //行為:

//... do something

}}

Java中的類

類可以看成是創建Java對象的模板。

通過下面一個簡單的類來理解下Java中類的定義:

public class Dog{
String breed; int age; String color; void barking(){
}

void hungry(){
}

void sleeping(){
}}

一個類可以包含以下類型變數:

E. 關於JAVA多態的編譯時類型與執行時類型的一個問題.

多態的對象,在編譯器為sub分配內存空間的時候執行的父類的屬性,
運行期,也就是調用方法的時候,指定是子類的行為

這是因為,對象的屬性是在聲明時指定,方法數據對象的行為

閱讀全文

與類是在編譯時定義的相關的資料

熱點內容
穿書荒島:女主把我奶上天小說 瀏覽:156
主角能看見別人氣運的小說 瀏覽:577
求一個不用下載播放器的網址 瀏覽:686
免費在線國產小電影 瀏覽:544
尺度大的女同電影 瀏覽:371
純愛高乾生子的小說 瀏覽:879
linux開發服務端 瀏覽:962
不要VIP的電視網站 瀏覽:780
看歐美出軌的.看歐美出軌的女人 瀏覽:872
linuxsignal函數 瀏覽:248
你的名字 國語 下載 瀏覽:280
銀河麒麟下編譯qt源碼 瀏覽:163
讀單片機的flash 瀏覽:839
安全不收費的看片網站 瀏覽:945
單片機顯示屏加排阻 瀏覽:729
新京報pdf 瀏覽:403
日本韓國推理片電影免費 瀏覽:823
c語言求n的階乘遞歸演算法 瀏覽:203
伺服器未回應是什麼原因 瀏覽:816
縹緲白姬和軒之結局 瀏覽:593