第三章 类和对象
1 第三章 类和对象
31类与对象的基本概念 311结构与类 1.结构的扩充 C++中对C语言的结构类型进行了扩充,它还可以含有函数。如: struct complex( double real ∥复数的实部 double imag ∥复数的虚部 void init( double r, double D)∥给real和imag赋初值 freal=r; imag=i;) double realcomplexo 取复数的实部值 freturn real double imagcomplexo ∥取复数的虚部值 freturn imag double abscomplexo ∥求复数的绝对值 i double t trealreal+imag * imag return agrt(t); };结构类型中的数据和函数,分别称为数据成员和函数成员
2 3.1 类与对象的基本概念 3.1.1 结构与类 1. 结构的扩充 C++中对C语言的结构类型进行了扩充,它还可以含有函数。如: struct complex{ double real; //复数的实部 double imag; //复数的虚部 void init (double r, double I) //给real和imag赋初值 { real=r; imag=i; } double realcomplex() //取复数的实部值 { return real;} double imagcomplex() //取复数的虚部值 { return imag;} double abscomplex() //求复数的绝对值 { double t; t=real*real+imag*imag; return agrt(t); } };结构类型中的数据和函数,分别称为数据成员和函数成员
※例3.1 void maino #include <iostre( A init(1. 1, 2.2) lud< th cout<“复数A的实部=“<< A. realcomplex(0<endl struct complex!/cou<“复数A的实部 double res “< A. imagcomplex(<end cou<“复数A的绝对值 double im -"<<A.abscomplexO<<endl void init( freal-r; iag I, double realcomplexo ∥取复数的实部值 freturn real; double imagcomplexo 取复数的虚部值 freturn imag; 1 double abscomplexo ∥复数的绝对值 i double t t=realrealtimag imag; return sqrt(t) 3:
3 **例 3.1 #include <iostream.h> #include <math.h> struct complex{ double real; //复数的实部 double imag; //复数的虚部 void init (double r, double I) //给real和imag赋初值 { real=r; imag=i; } double realcomplex() //取复数的实部值 { return real;} double imagcomplex() //取复数的虚部值 { return imag;} double abscomplex() //求复数的绝对值 { double t; t=real*real+imag*imag; return sqrt(t); } } A; void main() { A.init(1.1,2.2); cout<<“复数A的实部= “<<A.realcomplex()<<endl; cout<<“复数A的实部 = “<<A.imagcomplex()<<endl; cout<<“复数A的绝对值 = “<<A.abscomplex()<<endl; }
2.类的定义(声明) C++中说明类的一般形式为 cisaa 类名{ private:(可缺省) 私有数据成员和函数成员 rotected 保护段 public 公有数据成员和函数成员 类 class和结构 sturct的主要区别是 class complex 在缺省 private时 private 在类中,成员是私有的 double real, imag; 在结构中,成员是公有的 public void init(double r, doubleireal-r; imagi;) double realcomplexo return real; double imagcomplexo i return imag double abscomplexo i double t; t=real *real+imag *imag; return sqrt(t);
4 2. 类的定义(声明) C++中说明类的一般形式为 clsaa 类名 { private: (可缺省) 私有数据成员和函数成员 protected: 保护段 public: 公有数据成员和函数成员 }; class complex{ private: double real, imag; public: void init (double r, double i) { real=r; imag=i; } double realcomplex() { return real;} double imagcomplex() { return imag;} double abscomplex() { double t; t=real*real+imag*imag; return sqrt(t); } }; 类 class 和结构 sturct 的主要区别是: 在缺省 private 时, 在类中,成员是私有的 在结构中,成员是公有的
例32 #include <iostream.h> #include <math. h> class complex( private: d hubie re al, imag? public void init(double r, double i real=r; imag=i;) double realcomplexo i return real; 3 double imagcomplexo( return imag double abscomplexo i double t; t=real*real+imag *imag; return sgrt(t; void main( i complex A; Aini(1.1,2.2) cout<“复数A的实部=“<A. realcomplex0<end; cout<<s 复数A的实部=“<< A. imagcomplexo<end; cout<“复数A的绝对值=“<A. abscomplexo<<endl;
5 例 3.2 #include <iostream.h> #include <math.h> class complex{ private: double real, imag; public: void init (double r, double i) { real=r; imag=i; } double realcomplex() { return real;} double imagcomplex() { return imag;} double abscomplex() { double t; t=real*real+imag*imag; return sqrt(t); } }; void main( ) { complex A; A.init(1.1,2.2); cout<<“复数A的实部= “<<A.realcomplex()<<endl; cout<<“复数A的实部= “<<A.imagcomplex()<<endl; cout<<“复数A的绝对值= “<<A.abscomplex()<<endl; }