我在C
中很新,想問一個關於複製行爲的問題。我在閱讀Scott Meyers
'C++,他在書中說C++
可能會被視爲語言的組成部分,我們應該從C++
部分區分所謂的C部分。現在,如果我們不得不使用一些本地C
API包含以下內容:複製C對象
FontHandle getFont(); //From, C API
void releaseFont(FontHandle fh); //From the same C API
據我所知,C
語言不允許限定經過複製custructors一個自定義的複製行爲。那麼,如果我寫下如下內容,我應該會發生什麼:
FontHandle f1 = getFont();
FontHandle f2 = f1; //What's going to happen here? Deep or shallow copy?
'FontHandle'大概是一個'typedef'指針或整數類型的,當你說'char * a; char * b = a;'? – user657267
如果這是C API,那麼當然是淺拷貝。 'FontHandle'很可能是'typedef''ed'int'或'void *'或類似的東西。僅僅分配一個句柄不可能克隆底層字體對象,如果這就是你所要求的。你最終會得到兩個變量保持相同的數值。 –
這可能是答案。 http://stackoverflow.com/a/9127315/1099230 – luoluo