下面是我正在處理的代碼的簡化示例。有一個函數將類A指針作爲參數。我想傳遞一個已經初始化爲nullptr的指針。沒有初始化它到一些垃圾臨時值第一,是否有可能通過nullptr?如何傳遞nullptr?
class A
{
// stuff
};
class B
{
public:
A* pA1;
A objA;
std::vector<A*> vecB;
B() : pA1 (nullptr) { vecB.push_back(&objA); }
};
void function(A* p);
A* pA2;
int main()
{
B objB;
pA2 = objB.vecB[0];
function(objB.pA1);
return 0;
}
void function(A* p)
{
p = pA2;
}
這不是我清楚你試圖在你的程序做。 –
函數的要點在於:\t objB.pA1 = pA2 –
請注意,函數定義中的'p'是它自己的指針,它是從你傳遞的參數的* copy *初始化的。所以分配它只會在'function'內產生效果,對其他指針對象沒有影響。如果你想修改另一個指針,你需要像'void function(A *&p)'這樣的東西。 – aschepler