这是什么用法(关于c++类的声明),谁能解释一下啊?

Timesboy 2005-01-19 06:33:06

下面代码中带波浪线的到底是什么意思?请各位指点
-------------------------------
#ifndef _Handle_V3d_Viewer_HeaderFile
#define _Handle_V3d_Viewer_HeaderFile

//此处删去一些代码。。。。。。

class Standard_Transient;
class Handle_Standard_Type;
class Handle(Viewer_Viewer);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
class V3d_Viewer;
Standard_EXPORT Handle_Standard_Type& STANDARD_TYPE(V3d_Viewer);

class Handle(V3d_Viewer) : public Handle(Viewer_Viewer) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
public:
void* operator new(size_t,void* anAddress)
{
return anAddress;
}
void* operator new(size_t size)
{
return Standard::Allocate(size);
}
void operator delete(void *anAddress)
{
if (anAddress) Standard::Free((Standard_Address&)anAddress);
}
Handle(V3d_Viewer)():Handle(Viewer_Viewer)() {}
Handle(V3d_Viewer)(const Handle(V3d_Viewer)& aHandle) : Handle(Viewer_Viewer)(aHandle)
{
}

Handle(V3d_Viewer)(const V3d_Viewer* anItem) : Handle(Viewer_Viewer)((Viewer_Viewer *)anItem)
{
}

Handle(V3d_Viewer)& operator=(const Handle(V3d_Viewer)& aHandle)
{
Assign(aHandle.Access());
return *this;
}

Handle(V3d_Viewer)& operator=(const V3d_Viewer* anItem)
{
Assign((Standard_Transient *)anItem);
return *this;
}

V3d_Viewer* operator->()
{
return (V3d_Viewer *)ControlAccess();
}

V3d_Viewer* operator->() const
{
return (V3d_Viewer *)ControlAccess();
}

Standard_EXPORT ~Handle(V3d_Viewer)();

Standard_EXPORT static const Handle(V3d_Viewer) DownCast(const Handle(Standard_Transient)& AnObject);
};
#endif

...全文
84 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Timesboy 2005-01-19
  • 打赏
  • 举报
回复
to goodboy1881:就是这样的,我还以为这是C++的新语法呢,忙活了半天!

谢谢
积木 2005-01-19
  • 打赏
  • 举报
回复
class Handle(Viewer_Viewer);

这里应该有一个类的宏定义的,比如向下面的这样
#define Handle(x) Handle_##x 一类的东西(写得不准确,好久都不用了)

总值最后大致生成一个类名
Handle_Viewer_Viewer

64,671

社区成员

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

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