下面的語句給我的編譯器錯誤作爲一個驚喜,給我做這樣的變量定義:爲什麼我不能在if條件
BaseClass& base;
if (((const AClass*) ptr = dynamic_cast<const AClass*> (&base)) != NULL)
{
...
}
GCC 4.1.2 PTR說沒有定義爲錯誤。然而,普通的定義和分配是可行的。如
if (const int* ptr = f())
那麼是什麼讓它不能用於上述代碼段呢?
不,這不是重複的其他線程,因爲我指出了簡單的情況下工作,但不是這種情況。如果你認爲這是一個重複,你至少可以指出爲什麼上面那個不起作用。
[在C++中聲明和初始化條件或控制語句中的變量](http://stackoverflow.com/questions/1516919/declaring-and-initializing-a-variable-in-a-conditional- or-control-statement-in-c) – Rostislav
也許你的意思是'if(const AClass * ptr = dynamic_cast(&base))' –
@MM嘗試了所有這些變體,但仍然是相同的錯誤。 –