社区讨论
C++ 神奇语法
灌水区参与者 13已保存回复 20
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 20 条
- 当前快照
- 1 份
- 快照标识符
- @lo11rdn1
- 此快照首次捕获于
- 2023/10/22 13:47 2 年前
- 此快照最后确认于
- 2023/11/02 13:17 2 年前
CPP
struct Node{
Segment pre,suf,tot,maxseg;
bool lazy;
}now[MAXN * 4],inv[MAXN * 4];
Node operator+(Node nl,Node nr){
//...
}
class SegmentTree{
//...
}
可以通过编译,而下面这个不行。
CPPclass SegmentTree{
private:
struct Node{
Segment pre,suf,tot,maxseg;
bool lazy;
}now[MAXN * 4],inv[MAXN * 4];
Node operator+(Node nl,Node nr){
//...
}
};
提示
'SegmentTree::Node SegmentTree::operator+(SegmentTree::Node, SegmentTree::Node)' must have either zero or one argument,显然把这个运算符重载当做了一个成员函数,可是咱并没有在类内写运算符重载啊?为什么会被识别为成员函数呢?难道说它只识别是否在类内申明,就算在
SegmentTree 的类内重载也会被识别为成员函数?这真的不算漏洞吗?回复
共 20 条回复,欢迎继续交流。
正在加载回复...