這是我的代碼如何將Int32 *轉換爲Int32?
int32 *iPos;
status =scriptData.GetInt32(iPos);
int32 position=iPos;
但它發生error C2440: 'initializing' : cannot convert from 'int32 *' to 'int32'
如何轉換的Int32 *來的Int32?
這是我的代碼如何將Int32 *轉換爲Int32?
int32 *iPos;
status =scriptData.GetInt32(iPos);
int32 position=iPos;
但它發生error C2440: 'initializing' : cannot convert from 'int32 *' to 'int32'
如何轉換的Int32 *來的Int32?
只返回指針的地址取消對它的引用:
int32 position = *iPos;
但更優雅的版本是使用&
運算符來獲取指向position
的指針:
int32 position;
status = scriptData.GetInt32(&position);
謝謝:int32位置; status = scriptData.GetInt32(&position); –
也許你應該這樣做:
int32 position = *ipos;
(*首次公開招股)返回指針的值,(&首次公開募股)
感謝您的回覆。 –
顯然,你應該嘗試的Int32指針工廠像下一個:
class Int32Factory {
public:
static Int32Factory *instance() {
static std::unique_ptr<Int32Factory> s_s(new Int32Factory());
return s_s.get();
}
~Int32Factory() {
for (auto i : m_items) {
delete i;
}
}
int32 *getInt() {
m_items.push_back(new int32());
return m_items.back();
}
private:
std::vector<int32 *> m_items;
Int32Factory() { }
};
它使用簡單,只要做下面的步驟:
int32 *iPos = Int32Factory::instance()->getInt();
status = scriptData.GetInt32(iPos);
什麼像樣的C++的書/教程將告訴你怎麼樣。您取消引用該指針:'int position = * iPos;'。 –
你試過'position = * iPos;'? – Amadeus
轉換?你確定這就是你想要做的?我得到的印象是你不理解指針是幹什麼的....(或者以奇怪的方式使用「convert」這個詞)並且也可能錯誤地使用了'GetInt32'。 – Hurkyl