一.回顾/预习
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无转义
来源:CSDN
作者:安思言
链接:https://blog.csdn.net/weixin_44323639/article/details/103901402