2013-05-17 62 views
-3

我需要將DMapEntry :: pData從char *更改爲包含原始指針的類DMapData,但仍然能夠參考& DMapEntry中的pData [offset],而無需改變它。這可能嗎?c無法從類型A *轉換爲類型B *

#include "stdafx.h" 

class DMapData { 
    char* pData; 
public: 
    char* operator->() { return pData; } 
    char operator[](size_t offset) { return pData[offset]; } 
    friend class DMapEntry; 
}; 

class DMapEntry { 
    char* pStr; 
public: 
    DMapData pData; 
/*----->*/ void getStr(size_t offset) { pStr = &pData[offset]; } 
}; 

int _tmain(int argc, _TCHAR* argv[]) 
{ 
    DMapEntry a; 
    return 0; 
} 

感謝, 卡爾

+0

如果您'操作符[]'返回引用'焦炭&',而不是一個值'char',那麼你就可以拿結果的地址。 – porges

+1

你想'pData'是*什麼?* – Beta

+0

對不起,我真的打算包括& - 只是一個錯字 – user2392005

回答

0
char& operator[](size_t offset) { return pData[offset]; } 
相關問題