C++常见问题分析

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不是面向对象的概念,两者的区别就是面向对象与过程的区别了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值