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

网站开发 视频播放器做高端网站建设

网站开发 视频播放器,做高端网站建设,在线设计logo图片,企业网站备案是什么意思首先为什么要对运算符进行重载#xff1f;因为C内置的运算符只能作用于一些基本数据类型#xff0c;而对类和结构体这种自定义数据类型是不管用的。所以这时我们需要对运算符进行重新定义满足一定的运算规则。 运算符重载的三种形式 1.以普通的函数进行重载 #include …首先为什么要对运算符进行重载因为C内置的运算符只能作用于一些基本数据类型而对类和结构体这种自定义数据类型是不管用的。所以这时我们需要对运算符进行重新定义满足一定的运算规则。 运算符重载的三种形式 1.以普通的函数进行重载 #include iostreamusing std::cout; using std::cin; using std::endl;class Complex { private:int _real;int _image; public:Complex(int real0 ,int image0);~Complex();int getReal()const;int getImage()const;void print(); };Complex::Complex(int real ,int image) :_real(real) ,_image(image) {coutcomplex()endl; }Complex::~Complex() {cout~Complex()endl; } int Complex::getImage() const {return _image; } int Complex::getReal() const {return _real; } Complex operator(const Complex rhs1,const Complex rhs2) {return Complex(rhs1.getReal()rhs2.getReal(),rhs1.getImage()rhs2.getImage()); }void Complex::print() {cout_real _imageiendl; }int main() {Complex a(1,2);Complex b(2,3);Complex cab;c.print();return 0; }有几个问题需要注意 1.在类外调用private成员变量需要写个public接口函数。 2.返回临时对象不能加引用此时调用两次拷贝构造函数将临时对象返回给operator时满足拷贝函数调用时机3而将operator函数赋值给c又满足拷贝构造函数调用时机1。 3.const 对象只能调用const成员函数因此Complex operator(const Complex rhs1,const Complex rhs2)中的rhs1和rhs2两个对象只能调用const的成员函数所以要将getReal()和getImage()设置成const。 4.当构造函数的定义和声明分开时在设置默认参数时要注意只需要在一个地方设置默认参数要么在声明出设置默认参数要么在定义出设置默认参数。 2.以成员函数进行重载 #include iostreamusing std::cin; using std::cout; using std::endl;class Complex { private:int _real;int _image;public:Complex(int real, int image);~Complex();//函数中隐藏了this指针参数只能有两个Complex operator(const Complex rhs2);void print() const{cout_real _imageiendl;} };Complex::Complex(int real0, int image0): _real(real), _image(image) {coutComplex()endl; }Complex::~Complex() {cout~Complex()endl; } // Complex Complex::operator(const Complex rhs2) {Complex temp;temp._realthis-_realrhs2._real;temp._imagethis-_imagerhs2._image;return temp; } int main() {Complex a(1,2);Complex b(2,3);Complex cab;c.print();} 要注意的是 在定义成员函数的运算符重载时在非静态成员函数的参数第一个位置默认有一个this变量。 因此我们只需要设置一个Complex形参。 3.以友元函数进行重载 #include iostreamusing std::cout; using std::endl;class Complex { private:int _real;int _image; public:Complex(int real,int image);~Complex();friend Complex operator(const Complex rhs1,const Complex rhs2);void print() const; };Complex::Complex(int real0,int image0) :_real(real) ,_image(image) {coutComplex()endl; }Complex::~Complex() {cout~Complex()endl; }Complex operator(const Complex rhs1,const Complex rhs2) {return Complex(rhs1._realrhs2._real,rhs1._imagerhs2._image); } void Complex::print() const {cout_real _imageiendl; } int main() {Complex a(2,3);Complex b(3,4);Complex cab;c.print();return 0; } 可以看出在运算符重载时用友元函数比其他两种方法更加清晰简单。 在举个a)和a)的例子 #include iostreamusing std::cout; using std::endl;class Complex { private:int _real;int _image; public:Complex(int real,int image);~Complex();friend Complex operator(const Complex rhs1,const Complex rhs2);Complex operator();Complex operator(int);void print() const; };Complex::Complex(int real0,int image0) :_real(real) ,_image(image) {coutComplex()endl; }Complex::~Complex() {cout~Complex()endl; }Complex operator(const Complex rhs1,const Complex rhs2) {return Complex(rhs1._realrhs2._real,rhs1._imagerhs2._image); } void Complex::print() const {cout_real _imageiendl; }Complex Complex::operator() {_real;_image;return *this; } Complex Complex::operator(int) {Complex tem*this;_real;_image;return tem; } int main() {Complex a(2,3);Complex b(3,4);cout(a).print() ;(a).print();coutendlendl;couta.print() ;a.print();coutendlendl;cout(b).print() ;(b).print();return 0; } 运算符重载的规则 1.为了防止用户对标准类型进行运算符重载C规定重载的运算符的操作对象必须至少有一个是自定义类型或枚举类型。 2.重载运算符之后其优先级和结合性还是固定不变的。 3.重载逻辑运算符,||后不再具备短路求值特性。 4.重载不会改变运算符的用法如操作数的个数、操作数的位置这些都不会改变。 5.不可重载的运算符 (  .   ::   ?:     *.     sizeof   )
http://www.hkea.cn/news/14265810/

相关文章:

  • 校园门户网站建设方案企业服务有哪些内容
  • 网站技术维护wordpress编辑器所有功能
  • 企业网站设计开发服务wordpress本地搭建忘记账号密码
  • 网站开发pythonwordpress 缩略图优化
  • 建立第一个网站咸阳高端网站建设
  • 百度不更新网站wordpress侧边联系方式
  • 长沙建一个网站多少钱seo网站分析案例
  • 不懂英文怎么做英文的seo网站微信开发公众平台公司
  • 廊坊网站排名优化公司哪家好动画制作软件免费
  • wap网站解析服装网站推广计划书范文500字
  • 南京做机床的公司网站修改网站默认首页
  • 无锡做公司网站多少钱wordpress slider插件下载
  • 跨境电商网站如何做推广wordpress怎么让文章页新窗口打开
  • 建设端午节网站的目的主题如何给wordpress文章排版
  • 楚雄网站建设fusion app
  • 建设企业网站小微安卓手机开发者模式
  • 专业网站建设流程商品推广软文范例100字
  • 贵阳网站建设是什么意思有没有做英语试题的网站
  • 网站建设教程出售用苏州久远网络建设银行网站怎么下载地址
  • 西安买公司的网站建设网站制作-杭州
  • 如何开展网站建设创建网站有什么用
  • 宝安企业网站建设北京高端网站设计外包公司
  • 哈尔滨网站定制公司一起做网店潮汕站
  • 渭南做网站哪家公司网站建设讨论会
  • 网站建设金有限责任公司公司章程范本
  • 怎样做企业的网站东营市公共资源交易网
  • 精品网站开发公司培训行业门户网站建设
  • 男女做的那个视频网站有哪些做农产品的网站有哪些
  • 网站建设开发价格怎么算北京市住房和城乡建设网官网
  • 东莞做网站那家好青岛微网站建设