20200109

一.回顾/预习

1.流

在这里插入图片描述

2.运算符重载:友元单向的、不具备传递性、不能 被继承,所以,应尽力合理使用友元。

注意:友元的声明是不受 public/protected/private 关键字限制的。
运算符重载的实质就是函数重载或函数多态
在这里插入图片描述
运算符重载还具有以下规则:

为了防止用户对标准类型进行运算符重载, C++ 规定重载的运算符的操作对象 必须至少有一个是自定义类型或枚举类型

重载运算符之后,其优先级和结合性还是固定不变的。 重载不会改变运算符的用法,原来有几个操作数、操作数在左边还是在右边, 这些都不会改变。

重载运算符函数不能有默认参数,否则就改变了运算符操作数的个数。

重载逻辑运算符( && , || )后,不再具备短路求值特性。

不能臆造一个并不存在的运算符,如@、$等

用成员函数重载双目运算符时,左操作数无须用参数输入,而是通过隐含的 this 指针传入。

自增自减的前置与后置
在这里插入图片描述

明显前置形式效率更高

class Complex { public:

//...

//前置形式 
Complex & operator++() {

++_real;

++_image;

return *this; } 


//后置形式 
Complex operator++(int) //int作为标记,并不传递参数 
{
Complex tmp(*this);

++_real;

++_image;

return tmp; }

}

函数调用运算符

class Foo { public:

Foo(int count = 0): _count(count){}

void operator()(int x) { cout << " x = " << x << endl; }

int operator()(int x, int y) {

++_count;

return x + y; }

int _count;

};

void test() 
{ Foo foo; int a = 3, b = 4; foo(a); cout << foo(a, b) << endl; }

typedef 声明别名
此处为该类型函数别名
在这里插入图片描述
折腾的最终结果,vimplus

https://blog.csdn.net/qq_42104065/article/details/90450912

内置类型运算符无法重载?

sizeof是一个运算符
即使是sizeof(x),其中x为变量,在编译前也会被计算并替换,编译时已经变成结果

短路求值特性:if(0&&X),前者为0则x不会被执行
||与上相反

2.Fully-Convolutional Siamese Networks for Object Tracking

今日进度:python helloworld
中文漏洞需要改一改

python语法:

缩进标识代码块,缩进不对编译错误
数字只有int/bool/float/complex
字符串,三重代表多行字符串字符串前加r,raw无转义

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值