相关疑难解决方法(0)

在C++中查找对象的类型

我有一个A类和另一个继承它的类,B.我重写了一个接受A类对象作为参数的函数,所以我必须接受一个A.但是,我后来调用只有B的函数,所以我想返回false,如果传递的对象不是B类,则不继续.

找出传递给我的函数的对象的最佳方法是什么?

c++ types

135
推荐指数
6
解决办法
26万
查看次数

声明作为条件 - 添加括号会导致错误

为什么这样可以:

\n\n
if(int i = 1) {\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

...而以下会产生错误?

\n\n
if((int i = 1)) {\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

在 g++ (4.4.5) 下,后者给出:

\n\n
\n

test.cpp:7: 错误: 预期的主表达式在 \xe2\x80\x98int\xe2\x80\x99
\n test.cpp:7: 错误: 预期的 \xe2\x80\x98)\xe2\x80\x99 之前\xe2\x80\x98int\xe2\x80\x99
\n test.cpp:9: 错误: 预期 \xe2\x80\x98)\xe2\x80\x99 在 \xe2\x80\x98else\xe2\x80\x99 \
之前n test.cpp:13: 错误:\xe2\x80\x98}\xe2\x80\x99 标记之前预期的主表达式
\n test.cpp:13: 错误:预期 \xe2\x80\x98;\xe2\x80 \x99 位于 \xe2\x80\x98}\xe2\x80\x99 标记之前

\n
\n\n

顺便说一句,我问的原因是因为这个答案:Seeing what class an object is

\n\n

我正在尝试找到一种方法使条件更具可读性。通常,我更喜欢,例如:

\n\n
if((x = y) != 0) {\n
Run Code Online (Sandbox Code Playgroud)\n\n

\n\n
if(x = y) {\n
Run Code Online (Sandbox Code Playgroud)\n\n

...因为它更具可读性并且使编译器“注释”静音,表明我可能使用了错误的运算符。如果我使用声明 …

c++ variable-assignment conditional-statements

2
推荐指数
1
解决办法
2064
查看次数