IXMLDOMDocumentPtr 类型求解

nemo 2011-10-18 11:47:21
今天在学习对xml进行操作的时候,发现IXMLDOMDocumentPtr 这个很奇怪,不知道IXMLDOMDocumentPtr 到底是指针还是一般类型,IXMLDOMDocumentPtr 展开后为:_com_ptr_t<_com_IIID<IXMLDOMDocument, __uuidof(IXMLDOMDocument)>>,代码中有
IXMLDOMDocumentPtr pDoc;
那么这个pDoc到底是指针还是一般的变量呢,如果是指针,他怎么可以通过点运算符调用成员函数呢,如果是一般变量,他又怎么可以通过指向运算符调用成员函数呢?还望各位c++大牛不吝赐教,在此先谢过各位。
void xml_creat()
{
IXMLDOMDocumentPtr pDoc;
HRESULT hr = pDoc.CreateInstance(__uuidof(DOMDocument));
if(!SUCCEEDED(hr))
{
cout << "unable to creat DOMDocument object" << endl;
xml_exit();
}

IXMLDOMElementPtr pDocElement = pDoc -> createElement("China");
pDoc -> appendChild(pDocElement);

cout << "root: " << pDoc -> xml << endl;

IXMLDOMElementPtr pNewChildElement;
pNewChildElement = pDoc -> createElement("beijing");
pNewChildElement -> Puttext("-11");
cout << "s: " << pDoc -> xml << endl;
pDocElement -> appendChild(pNewChildElement);
cout << "e : " << pDoc -> xml << endl;

pNewChildElement = pDoc -> createElement("shanghai");
pNewChildElement -> Puttext("-12");
cout << "s: " << pDoc -> xml << endl;
pDocElement -> appendChild(pNewChildElement);
cout << "e : " << pDoc -> xml << endl;
pDoc -> save(".//test1.xml");


}
...全文
132 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
healer_kx 2011-10-18
  • 打赏
  • 举报
回复
class A
{};

A a;

这个时候,你用点来访问a对象的成员吧? 比如说:
a.func();


然后,C++支持运算符重载->

class A
{
B* operator->() {}
}

那么这个时候
A a;
a->

a就可以后用->来访问某些东西了吧?

但是你要注意,operator-> 返回的是什么类型?? 是 B*。

所以,a->访问的不是A类型对象的,而不是B*类型的对象的。
simimasaiya 2011-10-18
  • 打赏
  • 举报
回复
路过学习
healer_kx 2011-10-18
  • 打赏
  • 举报
回复
看源码~
大海啊全是水 2011-10-18
  • 打赏
  • 举报
回复
智能指针
大海啊全是水 2011-10-18
  • 打赏
  • 举报
回复
应该是只能指针,你就当指针吧

64,642

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧