第三章 类和对象
1 第三章 类和对象
31类与对象的基本概念 311结构与类 结构的扩充 C++中对C语言的结构类型进行了扩充,它还可以含有函数。如: struct complext double real: ∥复数的实部 double imag; ∥复数的虚部 void init( double r, double i)∥给real和imag赋初值 dreal-r; imag=i;) double realcomplexo 取复数的实部值 freturn real; double imagcomplexo 取复数的虚部值 freturn imag; 3 double abscomplexo ∥复数的绝对值 i double t; t=realrealtimag 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 i A init(1. 1, 2.2) lud< th cou<“复数A的实部=“<< A. realcomplexi0<<end struct complex cout<<s 复数A的实部 double res 4 <<A.imagcomplex(<<endl out<<“复数A的绝对值 double im= "<<A. abscomplexo<<endl; void init( freal-r; imag I, double realcomplexo ∥取复数的实部值 i return real; y double imagcomplexo 取复数的虚部值 freturn imag; double abscomplexo ∥复数的绝对值 i double t; t=real real+imag imag; return sqrt(t); }A;
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:(可缺省) 私有数据成员和函数成员 protected: 保护段 publics 公有数据成员和函数成员 类 class和结构 sturct的主要区别是 class complext 在缺省 private时 private 在类中,成员是私有的 double real, imag; 在结构中,成员是公有的 public: void init(double r, double ii rear; imag=i;) double realcomplexo i return real; double imagcomplexoi return imag: l double abscomplexo i double t; t=realrealtimag *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 时, 在类中,成员是私有的 在结构中,成员是公有的
例3.2 #include <iostream.h> #include <math.h> class complex pI rivate double real, imag; public void init(double r, double i)i real=r; imag=i; double realcomplexo i return real; 3 double imagcomplexo return imag:) double abscomplexo i double t; t=realrealtimag *imag; return sqrt(t); void main( f complex A: Ainit(1. 1, 2.2) cout<<“复数A的实部=“<<A. realcomplex0<<end; cout<“复数A的实部=“<< A. imagcomplexo<<endl; cout<“复数A的绝对值=“<< A. abscomplex(<<end;
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; }