败犬日报 2025-06-26
1. C x();
是函数声明不是变量定义
cpp
struct C {};
int main() {
C x(); // 函数声明
}
大概每个新手都会踩一遍这个坑吧。
most vexing parse,有歧义一律按函数声明处理。
https://eel.is/c++draft/dcl.ambig.res
2. Base0 不是 Derived 的直接基类所以不能调用 Base0 的构造函数
如果可以,Base0 会调两次构造。