C/C++:class与struct

本文探讨了C和C++中结构体(struct)的主要区别。在C中,struct仅用于定义数据成员,而C++的struct允许定义成员函数,这体现了C++对C的兼容性。此外,C++中的struct默认成员为public,与class的默认private形成对比。

C中的struct只能定义数据成员,不能定义成员函数。

C++中的struct可以定义函数,这样完全是为了兼容C程序。

struct默认public成员。
class默认private成员。

Compile error: In file included from /storage/emulated/0/Android/data/com.cscjapp.cppide/files/CJ_IDE/CPPProject/默认目录/Share_别踩白块/src/Main.c:1: In file included from /storage/emulated/0/usr/include/c++/v1/iostream:37: In file included from /storage/emulated/0/usr/include/c++/v1/ios:214: /storage/emulated/0/usr/include/c++/v1/iosfwd:101:1: error: unknown type name '_LIBCPP_BEGIN_NAMESPACE_STD' _LIBCPP_BEGIN_NAMESPACE_STD ^ /storage/emulated/0/usr/include/c++/v1/iosfwd:103:6: error: expected ';' after top level declarator class _LIBCPP_TYPE_VIS ios_base; ^ /storage/emulated/0/usr/include/c++/v1/iosfwd:105:1: error: unknown type name 'template' template<class _CharT> struct _LIBCPP_TEMPLATE_VIS char_traits; ^ /storage/emulated/0/usr/include/c++/v1/iosfwd:105:9: error: expected identifier or '(' template<class _CharT> struct _LIBCPP_TEMPLATE_VIS char_traits; ^ /storage/emulated/0/usr/include/c++/v1/iosfwd:106:1: error: unknown type name 'template' template<> struct char_traits<char>; ^ /storage/emulated/0/usr/include/c++/v1/iosfwd:106:9: error: expected identifier or '(' template<> struct char_traits<char>; ^ /storage/emulated/0/usr/include/c++/v1/iosfwd:108:1: error: unknown type name 'template' template<> struct char_traits<char8_t>; ^ /storage/emulated/0/usr/include/c++/v1/iosfwd:108:9: error: expected identifier or '(' template<> struct char_traits<char8_t>; ^ /storage/emulated/0/usr/include/c++/v1/iosfwd:110:1: error: unknown type name 'template' template<> struct char_traits<char16_t>; ^ /storage/emulated/0/usr/include/c++/v1/iosfwd:110:9: error: expected identifier or '(' template<> struct char_traits<char16_t>; ^ /storage/emulated/0/usr/include/c++/v1/iosfwd:111:1: error: unknown type name 'template' template<> struct char_traits<char32_t>; ^ /storage/emulated/0/usr/include/c++/v1/iosfwd:111:9: error: expected identifier or '(' template<> struct char_traits<char32_t>; ^ /storage/emulated/0/usr/include/c++/v1/iosfwd:112:1: error: unknown type name 'template' template<> struct char_traits<wchar_t>; ^ /storage/emulated/0/usr/include/c++/v1/iosfwd:112:9: error: expected identifier or '(' template<> struct char_traits<wchar_t>; ^ /storage/emulated/0/usr/include/c++/v1/iosfwd:114:1: error: unknown type name 'template' template<class _Tp> class _LIBCPP_TEMPLATE_VIS allocator; ^ /storage/emulated/0/usr/include/c++/v1/iosfwd:114:9: error: expected identifier or '(' template<class _Tp> class _LIBCPP_TEMPLATE_VIS allocator; ^ /storage/emulated/0/usr/include/c++/v1/iosfwd:116:1: error: unknown type name 'template' template <class _CharT, class _Traits = char_traits<_CharT> > ^ /storage/emulated/0/usr/include/c++/v1/iosfwd:116:10: error: expected identifier or '(' template <class _CharT, class _Traits = char_traits<_CharT> > ^ /storage/emulated/0/usr/include/c++/v1/iosfwd:119:1: error: unknown type name 'template' template <class _CharT, class _Traits = char_traits<_CharT> > ^ fatal error: too many errors emitted, stopping now [-ferror-limit=] 20 errors generated.
最新发布
09-27
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值