class类类型和struct结构体类型有何异同点?

题目
问答题
class类类型和struct结构体类型有何异同点?
参考答案和解析
正确答案: 相同点:都可以封装数据和操作,具派生性、隐藏性和多态性。
不同点:
①访问权限:class数据或函数访问私有;struct数据或函数访问公有;
②初始化方式:class类类型只能间接初始化;struct结构体类型可直接初始化。
解析: 暂无解析
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

设有以下说明语句

struct ex

{ int x ; float y; char z ;} example;

则下面的叙述中不正确的是

A.struct结构体类型的关键字

B.example是结构体类型名

C.x,y,z都是结构体成员名

D.struct ex是结构体类型名


正确答案:B

第2题:

以下有关类与结构体关系的叙述不正确的是( )

A.结构体中只包含数据;类中封装了数据和操作

B.结构体的成员对外界通常是开放的;类的成员可以被隐蔽

C.用struct不能声明一个类型名;而class可以声明一个类名

D.结构体成员默认为public;类成员默认为private


正确答案:C

可以说类来源于结构体,两者有相似之处。但类的功能更强大一些,不仅增加了操作, 还能够隐藏和包含其成员变量或成员函数。 

第3题:

设有以下语句

typedef struct TT

{char c,int a[4];} CIN;

则下面叙述中正确的是

A) 可以用 TT 定义结构体变量

B)TT 是 struct 类型的变量

C) 可以用 CIN 定义结构体变量

D)CIN 是 struct TT 类型的变量


正确答案:C
答案 C
解析:在 C 语言中, typdef 用于说明一种新的类型名,本题中的 CIN 被定义为一种新的类型名,我们可以用它来定义一个结构体变量。

第4题:

在C语言中,可以用typedef声明新的类型名来代替已有的类型名,比如有学生链表结点: typedef struct node{ int data; struct node * link; }NODE, * LinkList; 下述说法正确的是______。

A.NODE是结构体struct node的别名

B.* LinkList也是结构体struct node的别名

C.LinkList也是结构体struct node的别名

D.LinkList等价于node*


正确答案:A
解析:其实题中的定义相当于下述两个定义:typedefstructnode{intdata;structnode*link;}NODE;typedefstructnode{intdata;structnode*link;)*LinkList;前者给structnode取了个新名字NODE,即structnode和NODE是等价的;后者把structnode*命名为LinkList。

第5题:

设有以下说明语句

typedef struct

{ int n;

char ch[8];

} PER;

则下面叙述中正确的是

A.PER 是结构体变量名

B.PER是结构体类型名

C.typedef struct 是结构体类型

D.struct 是结构体类型名


正确答案:B
解析:本题中,typedef声明新的类型名PER来代替已有的类型名,PER代表上面指定的一个结构体类型,此时,也可以用PER来定义变量。

第6题:

设有以下说明语句

struct stu

{int a;

float b;

} stutype;

则下面的叙述不正确的是

A.struct是结构体类型的关键字

B.struct stu是用户定义的结构体类型

C.stutype是用户定义的结构体类型名

D.a和b都是结构体成员名


正确答案:C

第7题:

已知有结构体: struct sk { int a; float b; }data,*p; 若有p=&data,则对data的成员a的正确引用是( )。

A.struct是结构体类型的关键字

B.st是结构体类型名

C.x、y、z都是结构体成员名

D.struct str是结构体类型名


正确答案:B
解析: 本题主要考查结构类型的定义:struct是结构体类型的关键字;struct str是结构体类型名;x、 y、z都是结构体成员名;st是结构变量名。

第8题:

设有以下说明语句typedefstruct{intn;charch[8];}PER;则下面叙述中的是()。

A、PER是结构体变量名

B、PER是结构体类型名

C、typedefstruct是结构体类型

D、struct是结构体类型名


参考答案:B

第9题:

若某C语句如下: struct ex {int x;float y;char z;}example; 则以下叙述中不正确的是(29)。

A.struct结构体类型的关键字

B.x,y,z都是结构体成员名

C.stmct ex是结构体类型

D.example是结构体类型名


正确答案:D
解析:在C语言环境中,结构体类型说明的一般形式:struct结构体名{类型名结构体成员名……}结构体变量名;其中,“struct”是结构体类型的关键字。对于本试题定义的语句“structex{intx;floaty;charz;}example;”,其中example是结构体变量名,而非结构体类型名。

第10题:

有以下程序段: typedef struct NODE {int num; struct NODE *next; }OLD; 以下叙述中正确的是 ______。

A.以上的说明形式非法

B.NODE是一个结构体类型

C.OLD是一一个结构体类型

D.OLD是一个结构体变量


正确答案:C
解析:typedef关键字用于声明一个新的类型名代替已有的类型名。本题中如果没有用typedef进行定义的话,则struct NODE为结构体类型,现在用typedef定义后,相当于用OLD代表了struct NODE这一结构体类型,故OLD为结构体类型。

更多相关问题