Class(类) 和struct(结构体)区别

(1)class与C语言中的struct 形式区别

(1)class定义

例如:

class Cloth:   //冒号不能缺 尽量首字母大写

brand='***'

price=200

print(self.brand)//输出brand 

def 函数名(self,x,y)// class后面还可以跟def

注意self不能省去

例如:

def add (self,x,y)

result=x+y

print(result)

(2)class 调用

cal=Cloth()

 #注意这里运行class的时候要加"()",否则调用下面函数的时候会出现错误,导致无法调用.

>>> cal.name

'***'

>>> cal.price

200

>>>cal.add(1,2)

3

(3)class中init功能//初始化class

init是指以理解成初始化class的变量,取自英文中

initial 最初的意思   

注意:给初始值附值在实现init功能时要加上self

例如:def__init__(self,name,price,height,width,weight)        //为下划线是双下划线,初识化函数

        self.name=name

        self.price=price

        self.h=height

        self.wi=width

        self.we=weight

只要在运行中输入class的属性项目即可

例如 c=Calculator('bad calculator',18,17,16,15)

在输入c.name就可以得到'bad calculator'

>>>c.name

'bad calculator'

设置class中的默认属性,在def中输入即可

默认值的修改在操作页面

例如:把c.wi进行修改只要在操作页面中输入c.wi=17,wi的属性改成了17

>>> c.wi=17

>>> c.wi

17

(2)struct和 typedef struct(自定义变量名)区别

1.先声明结构体类型,再定义结构体变量

/*图书的结构体类型声明*/

struct Book

{

......

};

 

struct Book为结构体类型

 

/*结构体变量定义*/

struct Book book1;  //book1 为结构体变量。定义结构体变量

2.声明结构体类型,同时定义结构体变量

/*图书的结构体类型声明*/

struct Book 

{

......

}book2;    // book2 为结构体变量

 

struct Book为结构体类型

 

/*再次定义一个结构体变量 book3 */

struct Book book3;  //book3 为结构体变量。定义结构体变量

4.使用typedef声明结构体类型,再定义结构体变量

/*图书的结构体类型声明*/

typedef struct Book 

{

......

}strBook;    // strBook为结构体类型

 

/*定义一个结构体变量 */

strBook book6;  //book6 为结构体变量。

声明变量:

    1.于是在声明变量的时候就可:Stu stu1;(如果没有typedef就必须用struct Student stu来声明)这里的Stu实际上就是struct Student的别名。Stu==struct Student

    2.另外这里也可以不写Student(于是也不能struct Student stu1;了,必须是Stu stu1;)

2.其次:

    在c++中如果用typedef的话,又会造成区别:

struct   Student  

    {  

    int   a;  

    }stu1;//stu1是一个变量

typedef   struct   Student2  

    {  

    int   a;  

    }stu2;//stu2是一个结构体类型=struct Student

    使用时可以直接访问stu1.a

    但是stu2则必须先   stu2 s2;

然后               s2.a=10;

参考文献:

https://www.cnblogs.com/qyaizs/articles/2039101.html

https://blog.csdn.net/weixin_43878533/article/details/109547708

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C言中的struct结构是一种用户自定义的数据类型,它可以将不同类型的数据组合在一起形成一个整结构是由多个成员变量组成的,每个成员变量可以是不同的数据类型。通过struct关键字来定义结构,可以包含在其他结构中嵌套定义。 在C语言中,当使用结构定义变量时,需要在结构名称前加上struct关键字,例如: ``` struct Student { char name[20]; int age; }; ``` 这样就定义了一个名为Student的结构,其中包含了一个char类型的数组name和一个int类型的age成员变量。 而在C++中,可以不加struct关键字来定义结构变量,例如: ``` Student s1 = { "张三", 18}; Student s2 = { "李四", 20}; ``` 这样就定义了两个名为s1和s2的结构变量,分别初始化了其成员变量name和age的值。 总结起来,C语言中使用struct关键字定义结构变量时需要加上关键字struct,而在C++中可以省略struct关键字。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [C语言结构struct)最全的讲解(万字干货)](https://blog.csdn.net/lyh290188/article/details/104326450)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [【C语言】struct结构](https://blog.csdn.net/m0_51064412/article/details/130352792)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值