c++中struct和c中的struct的区别以及和c++中的class的区别

c 中的struct

    在c语言中我们都知道,数组代表的是相同类型的变量的集合,但是要存放不同类型的变量,就需要借助结构体。结构体用关键字struct声明。

    声明方式:

    struct 结构体名{
        结构体所包含的变量或数组

    };

结构体就是一个不同数据的集合,里面包含了许多不同的变量和数组。但是各个成员不能被初始化(比如直接在结构体内int  a=0;可以把他理解成一个类,一个模板)。并且结尾的分号不能省略,因为这是一条完整的语句。

使用实例:

struct node{

    cahr data;

    char * next;

};

c++中的struct

    在c++中继续保留了struct这个功能,但是相比c语言中的struct,c++做了一些扩展,它此时可以被当作一个拥有public访问权限的class,并且和class一样可以拥有成员函数。

例如

c++版本
struct person{
   char name[10];
   int age;
   void getname();
};
void person::getname(){
    return name;
}
在执行时最终会被解释成c版本,即成员函数不在结构体中包括上述的getname也相当与下面的写法
void getname(person *p){
    return p->name;
}


c++中的struct与class的区别

    struct的成员默认权限是public,而class的成员默认权限是private;

    struct的默认继承方式为public,而class的默认继承为private;

    模板为C++语言新增特性,C语言没有,只有class可用于定义参数,而struct不可以;

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值