1、memcpy 和 memmove的区别。
看了网上好多见解,最多的论点是:memmove 用于处理重叠src和dst重叠的情况。
个人认为:memmove不保证src不保证src不被修改,因为当dst与src有重叠的情况时,src是肯定要给修改的。
(1)memcpy 的职责要保证src不被修改,不然就不叫copy了。
(2)memmove 的职责是保证dst可以被正确赋值,而且src的内容可以不保留,不然就不叫move了。
(3)memcpy与memmove 的使用应该由调用者保证输入合法,做合法性校验。
转网上的实现
2、class与struct的区别。
根据以上网址的讨论总结如下:
(1)C++中的class与struct的区别:
《Inside C++ Object Model》中的确提到了struct 和class 的问题,其实LIPPMAN的意思是无是:
1。
struct 中的类成员默认的存取级别为public.
class 中成员默认的存取级别为Private.
2。
为了在所谓的“哲学”上的一个提升。
其他地方两者没有本质的区别。其实这样的问题我自己认为没有必要和C做太多的比较,因为C++之父说过把C++当做一个新的语言来看。所以呢什么时候使用struct 和class 依赖于具体使用时的决策。
(2)C++中的class与C中的struct的区别。
都是两种不同的概念的语言了,C中的struct不是面向对象的概念,两者的区别就是面向对象与过程的区别了。