.是对象的属性啊!
->是指针的引用啊!
比如说吧!
CTime time1;
CTime *time2=new CTime;
time1.GetYear();
time2->GetYear();
实现的是同一功能啊!
time2是指针,
而time1是对象。
->是指针的引用啊!
比如说吧!
CTime time1;
CTime *time2=new CTime;
time1.GetYear();
time2->GetYear();
实现的是同一功能啊!
time2是指针,
而time1是对象。
_variant TheValue;
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_list.ResetContent();
try
{
m_pRecordset->Open("select * from property", //注意:m_pRecordset后加 . 和加 -> 功能不同
m_pConnection.GetInterfacePtr(),
adOpenDynamic,
adLockOptimistic,
adCmdText
);
while (!m_pRecordset->adoEOF)
{
TheValue = m_pRecordset->GetCollect("Caption");
if (TheValue.vt != VT_NULL)
m_list.AddString((char *)_bstr_t(TheValue));
m_pRecordset -> MoveNext();
}
m_pRecordset -> Close();
}
catch(...)
{
AfxMessageBox("Error!");
}
这么说吧!
一个是对象,一个是指向对象的指针。这样说可能会使你更明白一点吧!
CTime time;
CTime *ptime;
ptime=&time;
就是这个意思,其他的没有什么得啦!
相信tmj(革命者) 不会不知道通常情况下.和->的差别。
不过,在ado中的_Recordsetptr的.和->是有不同的含义的。抱歉tmj(革命者) ,我只知道他们不一样,可是具体区别在什么地方我也不太清楚。各位发言前请先看看我上面的例子。少了一句_Recordsetptr m_pRecordset。
他本身并不是对象的指针。而且在例子中同时存在。m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pRecordset-> Open(……
两种用法……
XX->YY
就相当于
(*XX).YY
啦。
->是提领和调用的合体。
CDC *pDC;
……
pDC->LineTo(…)CDC hDC;
…
hdc.LineTo(…)
其实它是类,所以可以用.来调用它的成员函数,又因为重载了 -> ,
所以可以用->来调用它的封装的COM的东西哦!(不是成员函数)在用ADO时用_RecordsetPtr定义 m_pUserSet应该写为
_RecordsetPtr m_spUserSet;就不会混淆了所以,还是注意风格吧:)