当前位置: 首页 > news >正文

悦然外贸建站上海怎么制作网站

悦然外贸建站,上海怎么制作网站,WordPress做漫画网站,免费高清视频素材网站有哪些目录 运算符重载 概述 1.2 重载限制 友元简介 创建友元 常用的友元#xff1a;重载 运算符 重载运算符#xff1a;作为成员函数还是非成员函数 类的自动转换和强制类型转换 两种类型转换 转换函数 运算符重载 操作符重载#xff08;Operator Overloadi…目录 运算符重载 概述 1.2 重载限制 友元简介 创建友元 常用的友元重载  运算符 重载运算符作为成员函数还是非成员函数 类的自动转换和强制类型转换 两种类型转换 转换函数 运算符重载 操作符重载Operator Overloading是一种形式的C多态。 概述 函数重载函数多态定义多个名称相同但特征标参数列表不同的函数。 函数重载function overloading、函数多态function polymorphism。 C允许将运算符重载扩展到用户定义的类型。要重载运算符需使用被称为运算符函数的特殊函数形式。运算符函数的格式如下 // op表示要重载的操作符符号如 operator () operator op(argument-list)// 如operator []() 数组索引运算符 op必须是有效的C运算符不能虚构一个新的操作符号。 ⚠️警告不要返回指向局部变量或临时对象的引用。函数执行完毕之后局部变量和临时对象将消失引用将指向不存在的数据。 1.2 重载限制 重载后的运算符必须至少有一个是用户定义的类型。目的防止用户对标准类型重载运算符。 使用运算符时不能违反运算符原来的句法规则。不能改变优先级。 不能创建新运算符。如 operator **() 函数表示求幂❌不允许 **不能重载**下面的运算符 sizeof运算符成员运算符.成员指针运算符.*作用域解析运算符::条件运算符:?一个RTTI运算符typeid强制类型转换运算符const_cast、dynamic_cast、reinterpret_cast、static_cast。 只能通过成员函数重载的操作符 赋值运算符函数调用运算符()下标运算符[]通过指针访问类成员的运算符- 友元简介 C提供另外一种形式的访问权限友元。友元有3种 友元函数友元类友元成员函数 通过让函数成为类的友元可以赋予该函数与类的成员函数系统的访问权限。 在为类重载二元运算符时带两个参数的运算符常常需要友元。 对于非成员重载运算符函数来说运算符表达式左边的操作数对应于运算符函数的的第一个参数运算符表达式右边的操作数对应于运算符函数的第二个参数而原来的成员函数则按相反的顺序处理操作数。 通过友元函数可以让非成员函数也可与类成员函数相同的访问权限。 创建友元 创建原型 创建友元函数将其原型放在类声明中并在原型声明前加上关键字 friend friend Time operator * (double m,const Time t) /** operator*() 函数是在类声明中声明的但不是成员函数因此不能使用成员运算符来调用* operator*() 函数不是成员函数但它与成员函数的访问权限相同*/ 编写函数定义 因不是成员函数所以不需要使用 Time:: 限定符。不要在定义中使用关键字 friend。 Time operator*(double m, const Time t) // 友元不用在函数定义中使用 {Time result;long totalminutes t.hours * mult * 60 t.minutes * mult;result.hours totalminutes / 60;result.minutes totalminutes % 60;return result; } 常用的友元重载  运算符 运算符是C和C的位运算符将值中的位左移。ostream类对该运算符进行重载将其转换为一个输出工具。 ostream类声明中都包含相应的重载的 operator()定义。 ostream operator (ostream os, const c_name obj) {os ...; // 显示内容return os; } ⚠️警告只有在类声明中的原型才能使用 friend 关键字。除非函数定义也是原型否则不能在函数定义中使用该关键字。 重载运算符作为成员函数还是非成员函数 对于很多运算符来说可选择使用成员函数或非成员函数来实现运算符重载。而非成员函数则必须是友元函数才能访问类的私有数据。 // ---------------- Time 类 --- 注意加法属于二元操作符需要两个操作数----- Time operator(const Time t) const; //成员函数版本一个操作数通过this指针隐式磁道没而另一个则是作为函数参数显式传递friend Time operator(const Time t1,const Time t2);// 非成员函数版本友元函数两个操作数都是作为参数传递 ⚠️注意非成员版本的重载运算符函数所需的形参数目与运算符使用的操作数数目相同而成员函数所需的参数数目少一个因为其中的一个操作数是被隐式地传递的调用对象。 T1 T2 T3;T1 T2.operator(T3); // 成员函数格式 T1 operator(T2,T3); //非成员函数格式 ⚠️注意在定义运算符是必须选择其一而不能同时选择两种格式否则会出现二义性从而导致编译错误。 类的自动转换和强制类型转换 将一个标准类型变量的值赋给另一种标准类型的变量时如果两种类型兼容则C自动将该值转换为接收变量的类型。但是也会伴随精度丢失的情况发生。 两种类型转换 在无法完成自动转换时可以使用强制类型转换。 隐式转换 //使用构造函数创建一个临时对象并初始化然后采用逐成员赋值的方式将临时对象的内容复制到myCat中这种方式称为隐式转换。 Stonewt(double lbs); Stonewt myCat; myCat 19.6; // 只有接受一个参数的构造函数才能作为转换函数 隐式转换是自动进行而不需要显式强制类型转换。 显式转换 将构造函数用于自动类型转换会出现意外情况所以C新特性使用 关键字 explicit 来关闭自动特性。 // 声明构造函数的格式 explicit Stonewt(double lbs); //不隐式转换显式转换 只接受一个参数的构造函数定义了从参数类型到类类型的转换。如果在声明中使用关键字 explicit则只用于显式强制类型转换。否则会用于如下的隐式转换。避免存在二义性 将Stonewt对象初始化为doubel值时将double值赋给Stonewt对象时。将double值传递给接受Stonewt参数的函数时。上述任一情况下使用可转换为double类型的内置类型时。 转换函数 C运算符函数 ----- 转换函数用户自定义的强制类型转换可进行类似使用内置强制类型转换一样的方式。 operator typeName(); // typeName指要转换成的类型operator double(); //转换为double类型的函数原型 ⚠️转换函数的注意点 必须是类方法需要通过类对象来调用从而告知函数要转换的值。不能指定返回类型不能有参数 转换函数没有返回类型、没有参数、但必须返回转换后的值虽然没有声明返回值的类型 C为类提供的类型转换 只有一个参数的类构造函数用于将类型与该参数相同的值转换为类类型。在构造函数声明中使用 explicit可防止隐式转换而只允许显式转换。被称为转换函数的特殊类成员运算符函数用于将类对象转换为其他类型。
http://www.yutouwan.com/news/150455/

相关文章:

  • 图片设计网站有哪些正确的网线的顺序图
  • 企业营销型网站建设图片专业建站推荐
  • 成都筑巢网站建设中卫网站推广外包服务
  • 郑州网站建设与设计无锡企业网站建设
  • 黄石做网站的公司pc软件开发工具
  • 荷兰网站域名万能网
  • 免费网站制作平台下载秦皇岛建设规划
  • 一个人做网站原型深圳网站设计建设
  • 简单的网站制作网页设计入门基础
  • 网站项目建设的组织机构ui设计软件下载
  • 专业的培训行业网站开发1元做网站方案
  • 做零食网站的首页模板安装wordpress中文
  • 网站建设 协议书 doc网站建设观点知识普及
  • 铝木门窗网站建设佛山建设局网站
  • 网站建设2017排名wordpress+展开
  • 网站线上体系wordpress 特别慢
  • 建站程序的价钱能上国外网站的免费dns
  • 企业网站建设流程知乎合肥电子商务网站建设
  • 厦门手机网站建设是什么意思免费店铺logo在线制作
  • 大气手机网站模板查权重网站
  • 自己的网站没有域名解析西安市未央区最新消息
  • 网站建设公司电话销售话术大理建设学校官方网站
  • 网站制作收费明细表模板网站开发注意事项
  • 网站的tdk指的是什么意思动画设计素材
  • 中山今科网站建设抖音代运营协议
  • 网站建设推广费会计分录不常见的网络营销方式
  • 网站后台权限管理怎么做的建企业网站价格
  • 文登住房和建设局网站个人简介网站html代码
  • 律师的网站模板做网站费用
  • 崇明手机网站建设安卓手机app开发教程