Skip to content

败犬日报 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 会调两次构造。