我有一些沒有用的代碼,解決方案非常簡單:只需要以更長的方式編寫代碼即可。也就是說,執行以下操作:爲什麼我不能一次定義兩個指針?
我知道下面是正確的代碼:
int main() {
int a = 1,
b = 2;
return 0;
}
但我很驚訝地看到,下面給出了一個錯誤:
struct Foo {
int a = 0;
};
int main() {
Foo* f = new Foo;
Foo* x = f,
y = f;
return 0;
}
這提供了以下錯誤:
error: conversion from ‘Foo*’ to non-scalar type ‘Foo’ requested
y = f;
^
即使它會工作,如果你想更換的定義和y
有:
Foo* x = f;
Foo* y = f;
所以能不能有人解釋爲什麼這是不允許的(或重定向我不可避免的其他SO問題,說明這一點,這是我不能用這個錯誤找到)?