不能被重载的运算符
在C++中,不能被重载的运算符有:
- . 成员运算符
- .* 成员指针运算符
- :: 作用域运算符
- ?: 条件运算符
神奇的变量名y1
显示变量 y1 和 C++ 标准库中的某个变量名称冲突,这个问题应当引起注意。这不是头文件写成 <bits/stdc++.h> 引起的,即使换成各具体的头文件(< iostream >, < algorithm >, < ctring >)还是会发生这个错误。
并且尽量不要用到万能头,有多少就开多少,不然会开一些奇奇怪怪的函数然后导致错误。
main()函数的返回值
main()这个函数返回值为int,long long肯定不行,编译都过不了。有时为了方便把int替换成long long,会用到搜索功能中的替换文件内容,然后以为就一了了之了。(printf也会被替换)
循环语句问题
- while(条件)为false时,循环体不执行;
- do while(),循环体至少执行一次;
- break用于终止离它最近的循环语句;
重载运算符
在重载运算符时,需要注意到const,即使漏掉之后c++11的编译器也不会报错但是使用一些比较lj的编译器(如noi的 )就过不了。
所以还是要养成习惯
(你说用friend还有什么事)