Chào cả nhà
Mình có chút thắc mắc về dereference a pointer, mong mọi người giải thích giúp mình với ạ
Trong tài liệu có viết
To declare a pointer, write the type of the variable or object whose address will be stored in the pointer, followed by the pointer operator (*) and the name of the pointer. For example,
unsigned short int * pPointer = 0;
To assign or initialize a pointer, prepend the name of the variable whose address is being assigned with the address of operator (&). For example,
unsigned short int theVariable = 5; unsigned short int * pPointer = & theVariable;
To dereference a pointer, prepend the pointer name with the dereference operator (*). For example,
unsigned short int theValue = *pPointer
Sau đó mình đã tạo 1 đoạn code như thế này
class CMstFile
{
public:
CMstFile();
~CMstFile();
void SetName( const CString& sName);
CString GetName();
private:
CString m_sName;
};
CMstFile::CMstFile()
{
}
CMstFile::~CMstFile()
{
}
void CMstFile::SetName(
const CString& sName // (I) ファイル名
){
m_sName = sName;
}
CString CMstFile::GetName()
{
return m_sName; // (O) ファイル名
}
int CDataFnameYkdnSps::SaveLoadYkdnSps(int isvldflg)
{
int iret = 0;
POSITION pos;
CString sFileSaveLoad;
CMstFile *pMstFile;
CList<CMstFile*, CMstFile*> lListFile;
pMstFile = new CMstFile();
pMstFile->SetName( "netsugenki.tbl" );
lListFile.AddTail(pMstFile);
pMstFile = new CMstFile();
pMstFile->SetName("ngryo.tbl");
lListFile.AddTail(pMstFile);
pMstFile = new CMstFile();
pMstFile->SetName("tatgngryo.tbl");
lListFile.AddTail(pMstFile);
pMstFile = new CMstFile();
pMstFile->SetName("YkdSpser.tbl");
lListFile.AddTail(pMstFile);
if( isvldflg == 0 ){
m_strSvLd.Format(" %s をセーブしています。", "”部材カラー設定マスタファイル”" ) ;
UpdateData( FALSE );
for( pos = lListFile.GetHeadPosition(); pos != NULL; ){
m_prog.StepIt();
pMstFile = lListFile.GetNext( pos );
SaveFile( ( sFileSaveLoad = pMstFile->GetName() ), iret, fileDFL );
}
}else{
m_strSvLd.Format(" %s をロードしています。", "”部材カラー設定マスタファイル”" ) ;
UpdateData( FALSE );
for( pos = lListFile.GetHeadPosition(); pos != NULL; ){
m_prog.StepIt();
pMstFile = lListFile.GetNext( pos );
LoadFile( (sFileSaveLoad = pMstFile->GetName()), iret, fileDFL );
}
}
return iret;
}
Đoạn code này sFileSaveLoad = pMstFile->GetName() người hướng dẫn của mình nói là không được. Mình thấy nó cũng giống với cấu trúc int theValue = *pPointer mà.
Có thể giải thích cho mình biết tại sao không được không ạ.
Mình cảm ơn