2012-03-05 89 views
-1

有人可以指出使用對象類嗎?我的意思是使用對象類的實例是否分配了所有子類的所有內存?即INT等漂浮等使用對象類實例和(void *)

我想知道一些情況下,我們必須在需要的對象,有些情況下,我們是需要空指針的,感謝

+0

我不是100%清楚你問什麼,但我認爲http://stackoverflow.com/q/7298872/168175可能是你感興趣的。 – Flexo 2012-03-05 10:31:57

+2

很難說出這裏要問什麼。這個問題含糊不清,模糊,不完整,過於寬泛,或是修辭性的,不能以目前的形式合理地回答。 – 2012-03-05 10:32:59

+0

@Armen如果我首先看到了,'Challenge accepted' – thecoshman 2012-03-05 10:58:04

回答

1

一個void*是一個指向內存中沒有設置爲任何特定類型的空間或更多,指針可指向任何「類型」的內存,但它指向的內存仍然是,並且intmyObject

雖然這將是很「奇怪」的話,你可能有諸如

void zeroMem(void* memBlock, int size){} 

該功能可用於歸零的內存塊的所有位的功能。

我知道openGL的也有采取void*,通常用於緩衝功能,這意味着你可以創建一個緩衝區要麼char*int*例如,和OpenGL將與它的罰款,只要你告訴它有多少字節這個緩衝區是。

當然,這兩個例子都比C++更接近C++,尤其是那些openGL引用。

至於你的意思,'對象類實例'我不知道。也許你的意思和一個類的實例,你會調用和反對?在這種情況下,它的聲音喜歡你需要學習OOP

編輯

的基本面「對象類實例」

好了,你的意思是一個基類。如果你看看Java,所有對象都是從Object類派生的(不是使用大寫字母),這個基類隱含地(即無需你做任何事情)繼承,即使是繼承自類的對象另一件事,從而打破了C#不支持多繼承的觀念。

現在,問題是關於C++,所以我簡單地說你(或多或少)永遠不想擁有所有對象的基類Object類,所以沒有必要。這就是說,你可能有一個基類,很多你的類都是從中派生的。

這是OOP背後的基本概念,所以如果你需要這個解釋,你應該坐下來閱讀一本好書。

+0

從對象類我是指每個類基類的類 – 2012-03-05 11:59:09

+0

@sparkling_spark *沒有任何類是每個類的基類*。 – 2012-03-05 13:49:09

+0

是的,之後@thecoshman編輯答案,我明白了 – 2012-03-05 13:58:49