我有以下带有虚拟GrandParent和非虚拟的Parent类层次结构Child:
class GrandParent {\nprotected:\n explicit GrandParent(const float &max_dur);\n virtual ~GrandParent() {}\n\nprivate:\n const float _max_dur;\n};\n\nclass Parent : public virtual GrandParent {\npublic:\n explicit Parent(const float &max_dur = 0);\n};\n\nclass Child : public Parent {\npublic:\n explicit Child(const float &max_dur = 0);\n};\nRun Code Online (Sandbox Code Playgroud)\n它们的构造函数是这样嵌套的:
\n// GrandParent constructor\nGrandParent::GrandParent(const float &max_dur)\n : _max_dur{max_dur} {}\n\n// Use GrandParent constructor\nParent::Parent(const float &max_dur)\n : GrandParent{max_dur} {}\n\n// Use Parent constructor\nChild::Child(const float &max_dur)\n : Parent{max_dur} {} // <- error occurs here\nRun Code Online (Sandbox Code Playgroud)\n当我构建时,我收到以下错误消息:
\nerror: …Run Code Online (Sandbox Code Playgroud) 在 C++ 中,有人写了以下内容:
player = (player % 2) ? 1 : 2;
Run Code Online (Sandbox Code Playgroud)
从我读过的内容来看,如果括号内的条件为真,变量“player”将评估为 1,但这似乎不是一个可以为真或为假的条件。