- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 常类型、重载与引用
第 4 章 常对象、重载和引用 本章主要内容 3.6 共有数据的保护:const 3.9.1 静态数据成员 1.3.7 引用(reference) 4 运算符重载(overloading) 3.6 常类型 const 目的:对于既需要共享,又需要防止改变的数据声明为常量。 常类型的对象必须进行初始化,而且不能被更新。 常对象:其数据成员全部为常变量且必须有初始值。 类名 const 对象名 1、常对象举例 class A { public: A(int i,int j) {x=i; y=j;} ... private: int x,y; }; A const a(3,4); //a是常对象,不能被更新 2、常成员函数(专门为常对象定义的) 格式: 类型说明符 函数名(参数表)const;实现部分也要带const关键字。 功能: 常成员函数不能更新对象的数据成员,也不能调用类中没有用const修饰的成员函数。 调用: 通过常对象只能调用它的常成员函数。 重载函数:const关键字可以被用于参与对重载函数的区分 常成员函数举例 #includeiostream using namespace std; class R { public: R(int r1, int r2){R1=r1;R2=r2;} void print( ); void print( ) const; //声明 private: int R1,R2; }; void R::print() { coutR1:R2endl; } void R::print( ) const //定义常成员函数 { coutR1;R2endl; } void main() { R a(5,4); a.print(); //调用void print() const R b(20,52); //常对象 b.print(); //调用void print() const } 3、常数据成员: 使用const说明的数据成员。只能用构造函数的参数初始化表进行初始化。 #includeiostream using namespace std; class A {public: A(int i); void print(); const int r; private: const int a; static const int b; //静态常数据成员 }; 3.9.1 静态数据成员 目的:实现同类下各对象的数据共享。 在内存中只占一份空间,而不是每个对象分别一份。 静态数据成员的值对所有对象都是一样的。 2、引用与函数 void main { int x = 7, y=10; swap(x, y); coutxy; //??? } void main { int x = 7, y=10; swap(x, y); coutxy; //??? } void main { int x = 7, y=10; swap(x, y); coutxy; //??? } 4、重载 重载(overloading)是同一符号在同一作用域的不同场合具有不同的语义。这个符号可以是函数名、运算符,重载使程序更简洁。 函数重载 运算符重载 1)问题举例——复数的运算 class complex //复数类声明 { public: complex(double r=0.0, double i=0.0) //构造函数 { real=r; imag=i; } void display(); //显示复数的值 private: double real; double imag; }; 1)问题举例——复数的运算 如何实现复数的加、减运算? 实现复数加减运算的方法 定义成员函数:add,sub; 重载“+”、“-”运算符。 2)成员函数——复数的运算 class complex //复数类声明 { public: complex(double r=0.0, double i=0.0) //构造函数 { real=r; imag=i; } void display(); //显示复数的值 complex complex_add(Co
文档评论(0)