大学计算机C面向对象技术复习题汇总含答案
C++面向对象技术复习题汇总(含答案)

C++面向对象技术复习题汇总(含答案)面向对象程序设计C++复习资料与答案第一、二、六、七章习题一、选择题1、系统约定C++源程序文件名的缺省的扩展名为()A、bccB、c++C、cppD、vcc2、面向对象的程序设计将数据与()放在一起,作为一个相互依存、不可分割的整体来处理。
A、对数据的操作B、信息C、数据隐藏D、数据抽象3、当一个函数无返回值时,函数的类型应定义为()A、voidB、任意C、intD、无4、对于C++的函数,正确的叙述是:A、函数的定义不能嵌套,但函数的调用可以嵌套B、函数的定义不能嵌套,但函数的调用不能嵌套C、函数的定义和调用都不能嵌套D、函数的定义和调用都可以嵌套5、下列语句中错误的是()A、int *p=new int(10);B、int *p=new int[10]C、int *p=new int;D、int *p=new int[40](0);6、假设已经有定义:const char *const name=”chen”;,下面的语句中正确的是:()A、name[3]=’a’; B、name=”lin”;C、name=new char[5]; D、cout<<name[3];< bdsfid="94" p=""></name[3];<>7、假设已经定义:char *const name=”chen”;, 下面的语句中正确的是:()A、name[3]=’q’; B、name=”lin”;C、name=new char[5]; D、name=new char(‘q’);8、假设已经定义:const char *name=”chen”;, 下面的语句中错误的是:()A、name[3]=’q’; B、name=”lin”;C、name=new char[5]; D、name=new char(‘q’);9、下面的类型声明中正确的是:( )A、int &a[4];B、int &*p;C、int &&qD、int i,*p=&i;10、假设定义了函数模板()templateT max(T x,T y){ return(x>y)?x:y;}并定义了int i;char c;错误的调用语句是:()A、max(i,i)B、max(c,c)C、max((int)c,i);D、max(i,c)11、模板的使用是为了()A、提高代码的可重用性B、提高代码的运行效率C、加强类的封装性D、实现多态性12、设有二个语句:int x[‘a’];cin>>x;则编译器认为()A、说明语句int x[‘a’]错B、二个语句都错C、语句cin>>x 错D、二个语句正确,没有语法错13、设有语句:void f(int a[10],int &x);int y[10],*py=y,n;则对函数f的正确调用语句是( )A、f(py[10],n);B、f(py,n)C、f(*py,&n)D、f(py,&n)14、在C++中实现封装是借助于()A、枚举B、类C、数组D、函数15、对于下面几个函数:(1) void f(int x,float y) {…… }(2) int f(int a,float b){…… }(3) int f(int i,int j){…… }(4) float k(int x){…… }是重载函数。
《面向对象程序设计c》综合复习题集及答案详解

《面向对象程序设计c》综合复习题集及答案详解综合复习题集一、单选题1.C++源程序文件的缺省扩展名为(A)。
A.cppB.e某eC.objD.lik2.由C++源程序文件编译而成的目标文件的缺省扩展名为(C)。
A.cppB.e某eC.objD.lik3.由C++目标文件连接而成的可执行文件的缺省扩展名为(B)。
A.cppB.e某eC.objD.lik4.编写C++程序一般需经过的几个步骤依次是()。
A.编译、编辑、连接、调试B.编辑、编译、连接、调试C.编译、调试、编辑、连接D.编辑、调试、编辑、连接5.以下标识符中不全是保留字的是()。
A.caeforintB.defaultthenwhileC.boolclalongD.gotoreturnchar6.能作为C++程序的基本单位是()。
A.字符B.语句C.函数D.源程序文件7.程序中主函数的名字为()。
A.mainB.MAINC.MainD.任意标识符8.C++程序的基本模块为()。
A.表达式B.标识符C.语句D.函数9.可用作C++语言用户标识符的一组标识符是()。
A.voiddefine+WORDB.a3_b3_123YNC.for-abcCaeD.2aDOizeof10.存储以下数据,占用存储字节最多的是()。
A.0B.‘0’C.“0”D.0.011.程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用()符号作为分隔符。
A.空格或逗号B.逗号或回车C.逗号或分号D.空格或回车12.设”inta=12;”,则执行完语句”a+=a某a;”后,a的值是()。
A.12B.144C.156D.28813.假设在程序中a、b、c均被定义成整型,所赋的值都大于1,则下列能正确表示代数式1/abc的表达式是()。
A.1.0/a某b某cB.1/(a某b 某c)C.1/a/b/(float)cD.1.0/a/b/c14.设”inta=15,b=26;”,则”cout<A.15B.26,15C.15,26D.2615.设某是一个bool型的逻辑量,y的值为10,则表达式某&&y的值为()。
c面向对象考试题及答案

c面向对象考试题及答案一、选择题(每题2分,共10分)1. 在C++中,以下哪个关键字用于定义类的成员函数?A. staticB. virtualC. friendD. public答案:B2. 以下哪个选项不是C++中的访问修饰符?A. privateB. protectedC. publicD. global答案:D3. 在C++中,哪个关键字用于创建类的实例?A. classB. newC. structD. enum答案:B4. C++中的继承默认使用的是哪种继承方式?A. 公有继承B. 私有继承C. 保护继承D. 无继承答案:A5. 以下哪个不是C++中的多态性实现方式?A. 函数重载B. 函数覆盖C. 运算符重载D. 模板答案:D二、填空题(每题2分,共10分)1. 在C++中,类的构造函数可以有参数,也可以没有参数,没有参数的构造函数称为_________构造函数。
答案:默认2. C++中,析构函数的名称是在类名前加上一个_________符号。
答案:~3. 当一个类的对象被销毁时,会自动调用该对象的_________函数。
答案:析构4. 在C++中,如果一个类继承自另一个类,那么被继承的类称为_________类。
答案:基类5. C++中,如果一个类继承自多个类,这种继承方式称为_________继承。
答案:多重三、简答题(每题5分,共20分)1. 简述C++中类的封装性。
答案:类的封装性是指将数据(属性)和行为(方法)捆绑在一起,并对外部隐藏其内部实现细节,只提供有限的接口与外部交互。
2. 描述C++中类的继承机制及其作用。
答案:C++中的继承机制允许一个类(派生类)继承另一个类(基类)的属性和方法,从而实现代码的重用和扩展。
继承可以是公有的、保护的或私有的,分别对应不同的访问权限。
3. 解释C++中的多态性及其应用场景。
答案:多态性是指允许不同类的对象对同一消息做出响应的能力,即同一个接口可以被不同的实例以不同的方式实现。
C++面向对象程序设计复习练习试题带答案(1)

C++面向对象程序设计模拟试题一一、单项选择题(本大题共10小题,每小题2分,共201.说明虚函数的关键字是()。
A. inlinevirtual C. define D. static2.在每个C++程序中都必须包含有这样一个函数,该函数的函数名为()。
A. mainB. MAINC. nameD. function 3.cout是某个类的标准对象的引用,该类是()。
A. ostream B. istream C. stdout D. stdin4.如果在类外有函数调用CPoint::func();则函数func()是类CPoint的()。
A. 私有静态成员函数B. 公有非静态成员函数C. 公有静态成员函数 B. 友元函数5. 如果class类中的所有成员在定义时都没有使用关键字public、private或protected,则所有成员缺省定义为()。
A. publicB. protectedC. private D.static6.一个类的所有对象共享的是()。
A. 私有数据成员 B. 公有数据成员 C. 保护数据成员 D. 静态数据成员7.动态联编所支持的多态性称为()。
A. 虚函数 B. 继承C. 编译时多态性D. 运行时多态性8.定义类模板时要使用关键字()。
A. const B. newC. deleteD. template9.对虚基类的定义()。
A. 不需要使用虚函数 B. 必须使用虚函数C. 必须使用privatD. 必须使用public10.类型转换函数()。
A. 不能带有参数 B. 只能带一个参数 C. 只能带2个参数D. 只能带3个参数二、判断正误题(本大题共6小题,每小题2分,共12分)1.虚函数在基类和派生类之间定义,且要求函数原型完全一致。
()2.抽象类可以用来直接创建对象。
()3.内联函数中可以出现递归语句。
()4.模板类与类模板的意义完全相同。
()5.常对象只能调用常成员函数。
c面向对象程序设计期末考试题及答案

c面向对象程序设计期末考试题及答案一、选择题(每题2分,共20分)1. 下列哪个是面向对象程序设计的特点?A. 封装B. 继承C. 多态D. 所有选项都是2. 在Java中,以下哪个关键字用于定义类?A. classB. structC. typeD. classdef3. 以下哪个是Java中不允许的类成员访问修饰符?A. publicB. protectedC. privateD. global4. 以下哪个是Java中实现多态的方式?A. 函数重载B. 函数重写C. 接口D. 抽象类5. 在Java中,哪个关键字用于声明一个方法,该方法没有返回值?A. voidB. returnC. noneD. null6. 以下哪个是Java中创建对象的语法?A. new ClassName();B. create ClassName;C. make ClassName;D. ClassName();7. 在Java中,以下哪个是正确的构造方法声明?A. public ClassName();B. public ClassName new();C. public new ClassName();D. public ClassName create();8. 以下哪个是Java中实现继承的方式?A. 使用extends关键字B. 使用implements关键字C. 使用interface关键字D. 使用new关键字9. 在Java中,以下哪个关键字用于实现接口?A. implementsB. extendsC. interfaceD. class10. 以下哪个是Java中实现封装的方式?A. 使用public关键字B. 使用private关键字C. 使用protected关键字D. 使用default关键字答案:1. D2. A3. D4. B5. A6. A7. A8. A9. A10. B二、简答题(每题10分,共20分)1. 简述面向对象程序设计中的“封装”概念及其重要性。
面向对象期末考试题及答案

面向对象期末考试题及答案一、选择题(每题2分,共20分)1. 面向对象编程中的三大特性是?A. 封装、继承、多态B. 抽象、继承、封装C. 继承、封装、多态D. 封装、抽象、多态答案:A2. 在Java中,哪个关键字用于定义类?A. classB. structC. typeD. interface答案:A3. 以下哪个不是面向对象设计原则?A. 单一职责原则B. 开闭原则C. 里氏替换原则D. 模块化原则答案:D4. 在面向对象编程中,构造函数的作用是什么?A. 用于创建对象B. 用于销毁对象C. 用于实现继承D. 用于实现多态答案:A5. 以下哪个是Java中的访问修饰符?A. privateB. publicC. protectedD. 全部都是答案:D...(此处省略剩余选择题)二、简答题(每题10分,共30分)1. 简述面向对象编程的基本思想。
答案:面向对象编程是一种编程范式,它将现实世界中的实体抽象成对象,这些对象具有属性和行为。
面向对象编程的基本思想是将数据和处理数据的方法结合在一起,形成对象。
通过对象之间的交互来实现程序的功能。
2. 解释什么是多态性,并给出一个简单的例子。
答案:多态性是指允许不同类的对象对同一消息做出响应,但具体的行为会根据对象的实际类型而有所不同。
例如,在Java中,可以通过重载和重写来实现多态。
假设有一个动物类Animal,它有一个方法makeSound()。
然后有一个子类Dog,它重写了makeSound()方法。
当我们创建一个Dog对象并调用makeSound()时,会执行Dog类中的makeSound()方法,而不是Animal类中的。
3. 什么是封装?封装的好处是什么?答案:封装是将对象的数据(属性)和行为(方法)组合在一起,并隐藏对象的内部细节,只暴露出一个可以被外界访问的接口。
封装的好处包括:保护数据、减少错误、提高代码的重用性、增强模块化。
三、编程题(每题25分,共50分)1. 编写一个Java程序,实现一个简单的银行账户类Account,包含以下特性:- 私有属性:账户余额balance- 公共方法:存款deposit(double amount)、取款withdraw(double amount)、获取余额getBalance()答案:```javapublic class Account {private double balance;public Account() {this.balance = 0;}public void deposit(double amount) {if (amount > 0) {balance += amount;}}public void withdraw(double amount) {if (amount > 0 && balance >= amount) {balance -= amount;}}public double getBalance() {return balance;}}```2. 假设有一个名为Car的类,它有两个属性:品牌brand和颜色color。
C++面向对象程序设计(试题与答案)

模拟试题(1)一、判断对错题(10%)(对√,错×)()1.自动变量用堆方式创建,它与块共存亡。
()2.运算符+=是右结合的。
()3.表达式cout<<99的类型为int。
()4.++i是左值,但i++不是左值。
()5.Y[I][J]与*(*Y+I)+J不等价。
()6.从外部看类的private 成员和protected成员有区别。
()7.运算符&不可以重载。
()8.基类的protected成员经过protected派生,在派生类中它变成了private成员。
()9.2.0/-3.0是一个正确的表达式。
()10.字符'\12'的ASCII为12。
二、填空题(20%)#include <iostream.h>typedef struct node{long data;node * next;};class stack{private:node * head;①__________stack();~stack();void push (②__________);③__________ pop();④__________ print();};stack::stack(){ head = new ⑤__________head->next = ⑥__________ }stack::~stack(){node * p;p = head;while (p){head = head->next;⑦__________p = head;}}void stack::push(long x){node * p = new node;p->data = x;p->next = head->next;⑧__________ = p;cout<<"Push" <<x<<" ok !"<<endl;}long stack::pop(){node *p = head->next;if(p!=NULL){long x = p->data;head->next = p->next;⑨__________cout<<"pop "<<x<<" ok !"<<endl;return x;}elsecout<<"Stack is empty !"<<endl;return 0;}void stack::print(){node * p = head->next;cout<<"Stack_Top"<<endl;while (p){cout<<p->data<<endl;⑩__________;}cout<<"Stack_bottom"<<endl;}三、简答题(20%)(按条列出论点)1.注解。
c面向对象程序设计考试试卷(详细讲解).doc

c面向对象程序设计考试试卷(详细讲解).docC++面向对象程序设计考试试卷(详细讲解)一、单项选择题(共20 题,每题 1 分,共 20 分)1、下列关于 C++标识符的命名不合法的是C与 C#一样A. PadB. name_1C. A#bcD. _a122、若有以下类型标识符定义:() Dint x=2;char w='a';float y=23.45f;double z=45.6712;则表达式 w*x+y-z 的结果类型是A. floatB. charC. intD. double6、对重载函数形参的描述中,错误的是 D 重载是重点A.参数的个数可能不同B.参数的类型可能不同C.参数的顺序可能不同D.参数的个数、类型、顺序都相同,只是函数的返回值类型不同7、以下能正确定义数组并正确赋初值的语句是 DA. int N=5,b[N][N];B. int a[2]={{1},{3},{4},{5}};C. int c[2][]={{1,2},{3,4}};D. int d[3][2]={{1,2},{3,4}};8、下列给字符数组进行的初始化中,不正确的是 DA. char s1[]="abcd";B. char s2[3]={'x','y','\0'};C. char s3[]={'a','x','y','\0'};D. char s4[6]={"xyz","mnp"};9、通常的拷贝构造函数的参数是 CA.某个对象名 B.某个对象成员名C.某个对象的引用D.某个对象的指针名10、关于构造函数特点的描述中,错误的是 AA.定义构造函数必须指出类型(构造函数特点是无返回类型)B.构造函数的名字与该类的类名相同C.一个类中可定义0 至多个构造函数(不写构造函数,系统会自动生成一个空的构造函数)D.构造函数是一种成员函数11、下面程序的运行结果为 C#includeint add(int a,int b);void main(){extern int x,y;cout<<add(x,y)<<endl;< bdsfid="108" p=""></add(x,y)<<endl;<>}int x=20,y=5;int add(int a,int b){int s=a+b;- 1 -return s;}A.20 B.5 C.25 D.编译会提示出错信息12、关于常成员的描述中,错误的是 BA.常成员包含常数据成员和常成员函数两种B.常数据成员必须是公有的C.常数据成员要使用构造函数成员初始化列表进行初始化D.常对象只能调用它的常成员函数,不能调用其它的成员函数13、关于友元函数的描述中,错误的是 BA.友元函数不是成员函数B.友元函数只能访问类中私有成员C.友元函数破坏隐藏性,尽量少用D.友元函数说明在类体内,使用关键字friend14、如果有 int x,*p; float y,*q; 则下面操作正确的是 CA.p=x B.p=qC.p=&x D.p=&y16、若数组名作实参而指针变量作形参,函数调用时实参传给形参的是 DA.数组的长度B.数组第一个元素的值C.数组所有元素的值D.数组第一个元素的地址17、对于动态分配内存空间描述正确的是 DA.使用 new 运算符分配的内存空间的长度必需是常量B.delete 运算符可以释放动态的存储空间和静态的存储空间C.由 new 分配的内存空间是不连续的D.delete 运算符只能释放由new 分配的动态存储空间18、能够释放对象所占资源的是() AA.析构函数 B.数据成员C.构造函数 D.静态成员函数19、虚函数的定义是在基类中进行的,定义时需要冠以关键字 CA.static B.frendC.virtualD.public20、在 C++中串流类是在头文件 strstrea.h 中定义的,下列不属于串流类的是) CA.strstream B.ostrstreamC.ofstream D.istrstream二、填空题(共9 题 16 空,每空 1 分,共 16 分)1、函数重载时,编译系统会根据 __形参的类型 __或__形参的个数__来区分。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
面向对象程序设计C++复习资料与答案第一、二、六、七章习题一、选择题1、系统约定C++源程序文件名的缺省的扩展名为()A、bccB、c++C、cppD、vcc2、面向对象的程序设计将数据与()放在一起,作为一个相互依存、不可分割的整体来处理。
A、对数据的操作B、信息C、数据隐藏D、数据抽象3、当一个函数无返回值时,函数的类型应定义为()A、voidB、任意C、intD、无4、对于C++的函数,正确的叙述是:A、函数的定义不能嵌套,但函数的调用可以嵌套B、函数的定义不能嵌套,但函数的调用不能嵌套C、函数的定义和调用都不能嵌套D、函数的定义和调用都可以嵌套5、下列语句中错误的是()A、int *p=new int(10);B、int *p=new int[10]C、int *p=new int;D、int *p=new int[40](0);6、假设已经有定义:const char *const name=”chen”;,下面的语句中正确的是:()A、name[3]='a'; B、name=”lin”;C、name=new char[5]; D、cout<<name[3];7、假设已经定义:char *const name=”chen”;, 下面的语句中正确的是:()A、name[3]='q'; B、name=”lin”;C、name=new char[5]; D、name=new char(‘q');8、假设已经定义:const char *name=”chen”;, 下面的语句中错误的是:()A、name[3]='q'; B、name=”lin”;C、name=new char[5]; D、name=new char(‘q');9、下面的类型声明中正确的是:( )A、int &a[4];B、int &*p;C、int &&qD、int i,*p=&i;10、假设定义了函数模板()template <class T>T max(T x,T y){ return(x>y)?x:y;}并定义了int i;char c;错误的调用语句是:()A、max(i,i)B、max(c,c)C、max((int)c,i);D、max(i,c)11、模板的使用是为了()A、提高代码的可重用性B、提高代码的运行效率C、加强类的封装性D、实现多态性12、设有二个语句:int x[‘a'];cin>>x;则编译器认为()A、说明语句int x[‘a']错B、二个语句都错、二个语句正确,没有语法错D 错cin>>x 、语句C.13、设有语句:void f(int a[10],int &x);int y[10],*py=y,n;则对函数f的正确调用语句是( )A、f(py[10],n);B、f(py,n)C、f(*py,&n)D、f(py,&n)14、在C++中实现封装是借助于()A、枚举B、类C、数组D、函数15、对于下面几个函数:(1) void f(int x,float y) {…… }(2) int f(int a,float b){…… }(3) int f(int i,int j){…… }(4) float k(int x){…… }是重载函数。
A、4个全部B、1和2C、2和3D、3和416、使用myFile.open(“Sales.dat”,ios::app);语句打开文件Sales.dat后,则()A、使输出追加到文件尾部B、打开一个文件进行读操作C、打开一个文件进行读和写操作D、文件以二进制方式打开,默认时为文本文件二、填空题1、面向对象的程序设计有四大特征,它们是抽象、封装、、。
2、结构体类型中的数据和成员函数默认类型为。
3、C++要求为每个函数建立原型,以说明函数的名称、参数的和,以及函数返回值。
4、在函数说明前加关键字“inline”,则该函数被声明为函数,其引入的目的是为了消除函数调用时的开销,以提高运行速度。
5、引用变量与被引用变量占有内存单元。
6、运算符能够用于访问当前作用域内与局部变量同名的全局变量。
7、#include <iostream.h>void s(int a,int &b){int t=a;a=b;b=t;}void main(void){ int x=500,y=1000;cout<<x<<'\t'<<y<<'\n';s(x,y);cout<<x<<'\t'<<y<<'\n'; }程序的第一行输出为,第二行输出为。
8、#include <iostream.h>void main(void){ for(int a=1,b=1;a<=5;a++){ if(b>=8) break;if(b%2==1){b+=7;continue;}b-=3; }cout<<”a=”<<a<<'\n'<<”b=”<<b<<'\n';}程序输出结果是a= ,b= 。
9、#include <iostream.h>int x=100;void main(void)2{ int x=200;x+=::x; {int x=500;::x+=x;} cout<<x<<'\n';cout<<::x<<'\n';}程序的第一行输出为,第二行输出为。
10、#include<iostream.h>void f(float x=5, int y=16, char z=‘C');void main( ){ float a=1.6; int b=2; char c='D';f();f(a);f(a,b); f(a,b,c); }void f(float x, int y, char z){ cout<<“x=”<<x<<“y=”<<y<<“z=”<<z<<endl; }程序的第二行输出为,第三行输出为。
11、以下程序的输出结果是。
#include <iostream.h>char a[]=“ABCDEFGHI”;char &f(int);int main(){ f(6)=‘X'; cout<<a<<endl; return 0;}char &f(int i){ return a[i]; }12、如果C++程序中使用了:cout、strcpy,则必须在程序首部包含文件和。
13、#include <iostream.h>#include <iomanip>void main(){ int i=7890; cout<<setw(6)<<i<<endl; cout<<i<<endl; }程序的第一行输出为,第二行输出为。
14、#include <iostream.h>void main(){ int i=100;cout.setf(ios::hex); cout<<i<<”\t”;cout<<i<<”\t”;cout.setf(ios::dec);cout<<i<<”\n”;} 以上程序运行的结果是第三章类和对象一、选择题1、()不是构造函数的特征。
A、构造函数的函数名与类名相同;B、构造函数可以重载;C、构造函数可以设置缺省参数;D、构造函数必须指定类型说明。
2、下列关于构造函数的描述中,()是正确的。
A、构造函数可以设置缺省参数;B、构造函数可以被继承;C、构造函数可以对静态数据成员进行初始化;D、构造函数可以说明为虚函数;33、()是析构函数的特征。
A、析构函数可以有一个或多个参数;B、析构函数名与类名不同;C、析构函数的定义只能在类体内;D、一个类中只能定义一个析构函数;4、定义析构函数时,应该注意()。
A、其函数名与类名完全相同;B、函数返回类型是void类型;C、无形参,也不可重载;D、函数体中必须有delete语句;5、下列静态数据成员的特性中,()是错误的。
A、说明静态数据成员时前边要加修饰符static;B、静态数据成员要在类体外进行初始化;C、静态数据成员不是所有对象所共用的;D、引用静态数据成员时,要在其名称前加<类名>和作用域运算符;6、友元的作用是()。
A、提高程序的运用效率;B、加强类的封装性;C、实现数据的隐藏性;D、增加成员函数的种类;7、关于成员函数特征的下列描述中,()是错误的。
A、成员函数一定是内联函数;B、成员函数可以重载;C、成员函数可以设置缺省参数值;D、成员函数可以是静态的;8、已知:print()函数是一个类的常成员函数,它无返回值,下列表示中,()是正确的;A、void print() const;B、const void print();C、void const print();D、void print(const);9、在()情况下适宜采用inline定义内联函数。
A、函数体含有循环语句;B、函数体含有递归语句;C、函数代码小,频繁调用;D、函数代码多,不常调用;10、假定AB为一个类,则执行“AB a(4) , b[3] , * p[2] ;”语句时,自动调用该类构造函数的次数为( )。
A、 3B、 4C、6 D、 911、通常拷贝初始化构造函数的参数是( )。
A、某个对象名B、某个对象的成员名C、某个对象的引用名D、某个对象的指针名412、有关类的说法不正确的是( )。
A、类是一种用户自定义的数据类型B、只有类中的成员函数才能存取类中的私有数据C、在类中,如果不作特别说明,所有的数据均为私有类型D、在类中,如果不作特别说明,所有的成员函数均为公有类型13、在声明类时,下面说法正确的的是( )。
A、可以在类的声明中给数据成员赋初值B、数据成员的类型可以是registerC、public, private, protected这三种属性的成员可以按任意顺序出现D、没有用public, private, protected定义的成员是公有成员14、已知:p是一个指向类A数据成员m的指针,A1是类A的一个对象。