分享

C++和C#中的class和struct区别

 herowuking 2015-11-21

    今天无意中看到两年前自己总结的C++和C#中class和struct的比较。

    在C++中,class和struct区别很小。首先,C++中的struct保留有C语言中的struct的功能,但它又与C语言中的struct有很大区别。C++中的struct可以像class那样,允许有成员函数,允许继承。在C++中,class和struct只有两点区别。

1.class成员变量和成员函数默认为private,而struct中成员默认为public。

2.class默认为private继承,struct默认为public继承。

    除这两点之外,C++中的class和struct完全一样。不过,为了理解方便,最好将C++中的struct只当C语言的struct来用。

    C#中,class和struct区别很大。我总结有以下几点:

1.class是引用类型,而struct是值类型。引用类型使用的是堆内存,也就是动态内存,值类型使用的是栈内存。但为了保持外观的一致,C#让class和struct在使用时,都要用new来生成对象,形如:Typename a=new Typename ()

2.class允许定义无参的构造函数,struct不允许。

3.C#中有专门的interface标识来定义接口,class允许实现接口(类似继承),而且允许实现多个接口,struct不允许实现接口。当然,C#不允许class继承多个class。

    这里只简要总结一下,不再详细展开说明了。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多