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

類是在編譯時定義的

發布時間: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分配內存空間的時候執行的父類的屬性,
運行期,也就是調用方法的時候,指定是子類的行為

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

閱讀全文

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

熱點內容
卡爾曼濾波演算法書籍 瀏覽:769
安卓手機怎麼用愛思助手傳文件進蘋果手機上 瀏覽:844
安卓怎麼下載60秒生存 瀏覽:803
外向式文件夾 瀏覽:240
dospdf 瀏覽:431
怎麼修改騰訊雲伺服器ip 瀏覽:392
pdftoeps 瀏覽:496
為什麼鴻蒙那麼像安卓 瀏覽:736
安卓手機怎麼拍自媒體視頻 瀏覽:186
單片機各個中斷的初始化 瀏覽:724
python怎麼集合元素 瀏覽:481
python逐條解讀 瀏覽:833
基於單片機的濕度控制 瀏覽:499
ios如何使用安卓的帳號 瀏覽:883
程序員公園采訪 瀏覽:812
程序員實戰教程要多長時間 瀏覽:979
企業數據加密技巧 瀏覽:135
租雲伺服器開發 瀏覽:814
程序員告白媽媽不同意 瀏覽:337
攻城掠地怎麼查看伺服器 瀏覽:601