大家帮我看一下这我的理解对不对?

ny1986 2012-12-25 08:25:17

AdFront2::FrontPoint2 :: FrontPoint2 (const Point<3> & ap, PointIndex agi,
MultiPointGeomInfo * amgi, bool aonsurface)
{
p = ap;
globalindex = agi;
nlinetopoint = 0;
frontnr = INT_MAX-10;
onsurface = aonsurface;

if (amgi)
{
mgi = new MultiPointGeomInfo (*amgi); for (int i = 1; i <= mgi->GetNPGI(); i++)
if (mgi->GetPGI(i).trignum <= 0)
cout << "Add FrontPoint2, illegal geominfo = " << mgi->GetPGI(i).trignum << endl;
}
else
mgi = NULL;
}


如上面所示的代码中红色的部分,其中mgi是MultiPointGeomInfo类型的一个对象(MultiPointGeomInfo * mgi),MultiPointGeomInfo类的定义如下:

#define MULTIPOINTGEOMINFO_MAX 100
class MultiPointGeomInfo
{
int cnt;
PointGeomInfo mgi[MULTIPOINTGEOMINFO_MAX];
public:
MultiPointGeomInfo () { cnt = 0; }
int AddPointGeomInfo (const PointGeomInfo & gi);
void Init () { cnt = 0; }
void DeleteAll () { cnt = 0; }

int GetNPGI () const { return cnt; }
const PointGeomInfo & GetPGI (int i) const { return mgi[i-1]; }
};

这里红色字体部分等号右边应该是动态建立了一个MultiPointGeomInfo类型的对象,通过建立等号,将该对象的起始地址放到指针变量mgi中存放,以便后面使用。但是MultiPointGeomInfo (*amgi)又是什么用法呢?这是一个初始化操作吗?但该类的构造函数是没有参数的,这里应该怎么理解?请大家帮忙看一下,谢谢。
...全文
1239 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2012-12-31
  • 打赏
  • 举报
回复
引用 8 楼 ny1986 的回复:
引用 7 楼 zhao4zhong1 的回复:VC调试时按Alt+8打开汇编窗口看不明白的类构造或类成员函数调用对应的汇编、单步执行几步后,早晚要打开实际执行时对应子类的构造函数或类成员函数的源代码。这样过一遍不就啥都明白了吗。 不好意思,你说的是反汇编吧,这个太高深了,完全不会。膜拜
不用懂反汇编,在汇编指令上单步执行几步后会自动跳转到实际执行时对应子类的构造函数或类成员函数的C++源代码处。
ny1986 2012-12-30
  • 打赏
  • 举报
回复
暂时结贴,以后慢慢体会
ny1986 2012-12-28
  • 打赏
  • 举报
回复
引用 7 楼 zhao4zhong1 的回复:
VC调试时按Alt+8打开汇编窗口看不明白的类构造或类成员函数调用对应的汇编、单步执行几步后,早晚要打开实际执行时对应子类的构造函数或类成员函数的源代码。这样过一遍不就啥都明白了吗。
不好意思,你说的是反汇编吧,这个太高深了,完全不会。膜拜
赵4老师 2012-12-28
  • 打赏
  • 举报
回复
VC调试时按Alt+8打开汇编窗口看不明白的类构造或类成员函数调用对应的汇编、单步执行几步后,早晚要打开实际执行时对应子类的构造函数或类成员函数的源代码。这样过一遍不就啥都明白了吗。
rocktyt 2012-12-27
  • 打赏
  • 举报
回复
引用 5 楼 ny1986 的回复:
引用 3 楼 zhao4zhong1 的回复:VS IDE中,在不明白的符号上点鼠标右键,选转到定义。 你好,你说的方法我知道。但这里的问题是MultiPointGeomInfo这个类中没有MultiPointGeomInfo (*amgi)这个构造函数。
没有定义的话编译器会自动生成默认构造函数,拷贝构造函数,赋值运算符和析构函数
ny1986 2012-12-27
  • 打赏
  • 举报
回复
引用 3 楼 zhao4zhong1 的回复:
VS IDE中,在不明白的符号上点鼠标右键,选转到定义。
你好,你说的方法我知道。但这里的问题是MultiPointGeomInfo这个类中没有MultiPointGeomInfo (*amgi)这个构造函数。
ny1986 2012-12-27
  • 打赏
  • 举报
回复
引用 2 楼 hhyhw2001 的回复:
MultiPointGeomInfo类缺少构造函数 MultiPointGemInfo ( MultiPointGeomInfo& );
是的,所以我不懂这里是什么用法?
hhyhw2001 2012-12-26
  • 打赏
  • 举报
回复
MultiPointGeomInfo类缺少构造函数 MultiPointGemInfo ( MultiPointGeomInfo& );
赵4老师 2012-12-26
  • 打赏
  • 举报
回复
VS IDE中,在不明白的符号上点鼠标右键,选转到定义。
乔巴好萌 2012-12-25
  • 打赏
  • 举报
回复
amgi类型是MultiPointGeomInfo * 所以MultiPointGeomInfo (*amgi) 就是调用构造函数 MultiPointGemInfo ( MultiPointGeomInfo & info );
内容概要:本文围绕无人水面艇(USV)路径跟踪控制问题,重点研究并实现了基于视线(Line-of-Sight, LOS)算法的控制策略仿真。通过Matlab平台搭建仿真环境,详细展示了LOS算法在处理USV沿预定路径航行时的横向偏差抑制与航向调整能力,结合船舶动力学模型实现路径跟踪控制。文中涵盖了控制算法的设计原理、关键参数整定方法及仿真结果分析,能够有效应对海洋环境中常见的外部干扰因素,提升路径跟踪精度与系统稳定性。; 适合人群:具备自动控制理论基础、船舶工程或海洋机器人相关背景,熟悉Matlab/Simulink仿真工具,从事无人艇控制、路径规划与导航系统研究的研发人员及研究生。; 使用场景及目标:① 掌握LOS算法在无人水面艇路径跟踪中的应用机制;② 学习如何结合运动学与动力学模型构建完整的控制系统仿真框架;③ 为后续引入更复杂的环境干扰(如风浪流)、多艇协同控制或与其他先进控制算法(如MPC、滑模控制)融合提供技术基础与仿真原型。; 阅读建议:建议读者结合Matlab代码逐模块分析算法实现流程,重点关注LOS引导律设计、航向控制器集成及仿真结果的动态响应表现,鼓励修改路径形状、调整控制参数以加深理解,并可进一步扩展为三维空间或编队控制场景。

65,209

社区成员

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

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