我在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