您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > C++面向对象程序设计
实验名称:C++面向对象程序设计姓名:班级:学号:第一题1.用扩充的结构体类型(struct)求复数的绝对值:#includeiostream//编译预处理命令#includecmathusingnamespacestd;//使用命令空间stdstructComplex{//声明了一个名为Complex的结构体(struct)类型doublereal;//数据成员,复数的实部doubleimag;//数据成员,复数的虚部voidinit(doubler,doublei)//成员函数,給real和imag赋初值{real=r;imag=i;}doubleabscomplex()//成员函数,求复数的绝对值{doublet;t=real*real+imag*imag;returnsqrt(t);}};intmain(){ComplexA;//定义结构体Complex的变量AA.init(1.1,2.2);//调用成员函数init,给real和imag赋初值cout复数的绝对值是:A.abscomplex()endl;//调用成员函数abscomplexreturn0;}2.用类类型(class)替代上面的结构体类型(struct):#includeiostream//编译预处理命令#includecmathusingnamespacestd;//使用命令空间stdstructComplex{//声明了一个名为Complex的结构体(struct)类型doublereal;//数据成员,复数的实部doubleimag;//数据成员,复数的虚部voidinit(doubler,doublei)//成员函数,給real和imag赋初值{real=r;imag=i;}doubleabscomplex()//成员函数,求复数的绝对值{doublet;t=real*real+imag*imag;returnsqrt(t);}};intmain(){ComplexA;//定义类Complex的对象AA.init(1.1,2.2);//错误编译cout复数的绝对值是:A.abscomplex()endl;//错误编译return0;}3.含有公有成员和私有成员的Complex的类:#includeiostream//编译预处理命令#includecmathusingnamespacestd;//使用命令空间stdclassComplex{//声明了一个名为Complex的类private://声明以下部分为私有的doublereal;//私有数据成员,复数的实部doubleimag;//私有数据成员,复数的虚部public://声明以下部分为公有的voidinit(doubler,doublei)//公有成员函数,給real和imag赋初值{real=r;imag=i;}doubleabscomplex()//公有成员函数,求复数的绝对值{doublet;t=real*real+imag*imag;returnsqrt(t);}};intmain(){ComplexA;//定义类Complex的对象AA.init(1.1,2.2);//类外的对象A可以访问公有成员函数initcout复数的绝对值是:A.abscomplex()endl;//类外的对象A可以访问公有函数abscomplexreturn0;}(1)什么是类?什么是对象?(2)Struct和class的不同是什么?(3)私有和公有的不同?为什么一般情况下,数据部分都是私有的?答(1):类是面向对象程序设计的最基本的概念,是C++最强有力的特征,是进行封装和数据隐藏的工具,它将数据与操作紧密地结合起来。它是用户定义的抽象的数据类型,代表了一批对象的共性和特性。对象是类的实例,面向对象程序设计中的对象来源于现实世界,更接近人的思维。答(2):(一)默认继承权限。如果不明确指定,来自class的继承按照private继承处理,来自struct的继承按照public继承处理;(二)成员的默认访问权限。class的成员默认是private权限,struct默认是public权限。答(3):public可以将类的成员说明为是公有的,及可以被该类的所有成员所访问:private可以将类的成员说明为是私有的,它不能直接被对象访问。公有,意味着任何人都可以访问,包括类内的,类外的,继承的,不继承的,而私有,则表示出了类(或对象)自己本身,其他任何地方都无法访问。C++规定,在默认情况下(既没有指定属于私有或公有时),类中的成员是私有的。所以一般情况下,数据部分是私有的。第二题.编程实现一个student的类,包含你认为的一个学生应该包含的主要信息(不超过5项),同时:(1)用一个类成员input来输入一个学生所需数据信息;(2)用一个类成员函数output来输出student的数据信息;(3)如果一个班级有不超过50个学生,如何使用stduent类来表示和使用这个学生数组?#includeiostream//编译预处命令usingnamespacestd;//使用命令空间stdclassstudent{//声明一个名为student的类private://声明以下部分为私有的chara[3][100];//定义数组public://声明一下部分为公有的voidinput()//公有成员函数{inti;for(i=0;i3;i++){if(i==0)coutInputname:;//输出学生姓名if(i==1)coutInputidnumber:;//输出学生IDif(i==2)coutInputstudentnumber:;//输出学生学号cina[i];coutendl;}}voidoutput(){inti;for(i=0;i3;i++){if(i==0)coutStudent'snameis:;if(i==1)coutStudent'sidnumberis:;if(i==2)coutStudent'sstudentnumberis:;couta[i]endl;}}};intmain(){studentA;A.input();A.output();return0;}如果是50个学生,那么还是利用数组把上面的程序放到数组里进行处理。循环的方式更清晰的表达数据处理过程。
本文标题:C++面向对象程序设计
链接地址:https://www.777doc.com/doc-6311579 .html