很奇怪的题,什么叫做data member definition

superspring 2009-11-23 03:58:12


class A{
private: int a; // One
public:
A(int a=0): // two
wheels(wheels){} // three
int getA(){
return a;
}
};

A aaa; // four

问题是,上面的one, two, three, four 中,哪一个代表的是 data member definition
...全文
131 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
forster 2009-11-24
  • 打赏
  • 举报
回复
这个问题是谁问你的?
让他问编译器
benbshmily 2009-11-24
  • 打赏
  • 举报
回复
在构造对象的时候,成员变量才真正的定义。类里面全是声明。当然除静态的,静态的再初始化的时候定义。
herman~~ 2009-11-24
  • 打赏
  • 举报
回复
one吧,只有他是成员变量
eyodo8 2009-11-24
  • 打赏
  • 举报
回复
A(int a=0): // two wheels(wheels){}
A的构造函数这里并不是对成员变量a进行赋值,此a非彼a。
wheels(wheels){}这里的wheels确实很诡异,这个是A对象的成员变量么。如果是a的话还可以理解
jackyjkchen 2009-11-23
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 superspring 的回复:]
引用 5 楼 jackyjkchen 的回复:
引用 4 楼 superspring 的回复:
引用 3 楼 jackyjkchen 的回复:
wheels(wheels){} // three
这是什么东西,很诡异的说,我理解你的意思了,找private: int a;赋值的地方


C/C++ code

A(int a=0): wheels(wheels){}
\\这个是构造函数和初始化列表啊,只是分开写为了标明 two 和 three

知道是初始化列表,问题是wheels的含义。整个类里看不出a在哪里有赋值,也就是这个地方可疑,如果这个初始化列表能初始成员a,那么答案就是four,只有在four的时候构造函数才会调用,进行a的实例化

C/C++ code
A(int a1=0): a(a1){}
应该是这样,我刚才搞错了

[/Quote]

那就比较清楚了,语义上,A(int a1=0): a(a1){}是定义的地方,而这句话four去调用……不过,应该选语义上的还是实际调用的,我又有些打鼓了
superspring 2009-11-23
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 jackyjkchen 的回复:]
引用 4 楼 superspring 的回复:
引用 3 楼 jackyjkchen 的回复:
wheels(wheels){} // three
这是什么东西,很诡异的说,我理解你的意思了,找private: int a;赋值的地方


C/C++ code

A(int a=0): wheels(wheels){}
\\这个是构造函数和初始化列表啊,只是分开写为了标明 two 和 three

知道是初始化列表,问题是wheels的含义。整个类里看不出a在哪里有赋值,也就是这个地方可疑,如果这个初始化列表能初始成员a,那么答案就是four,只有在four的时候构造函数才会调用,进行a的实例化
[/Quote]

A(int a1=0): a(a1){}

应该是这样,我刚才搞错了
jackyjkchen 2009-11-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 superspring 的回复:]
引用 3 楼 jackyjkchen 的回复:
wheels(wheels){} // three
这是什么东西,很诡异的说,我理解你的意思了,找private: int a;赋值的地方


C/C++ code

A(int a=0): wheels(wheels){}
\\这个是构造函数和初始化列表啊,只是分开写为了标明 two 和 three
[/Quote]
知道是初始化列表,问题是wheels的含义。整个类里看不出a在哪里有赋值,也就是这个地方可疑,如果这个初始化列表能初始成员a,那么答案就是four,只有在four的时候构造函数才会调用,进行a的实例化
superspring 2009-11-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jackyjkchen 的回复:]
wheels(wheels){} // three
这是什么东西,很诡异的说,我理解你的意思了,找private: int a;赋值的地方
[/Quote]



A(int a=0): wheels(wheels){}
\\这个是构造函数和初始化列表啊,只是分开写为了标明 two 和 three

jackyjkchen 2009-11-23
  • 打赏
  • 举报
回复
wheels(wheels){} // three
这是什么东西,很诡异的说,我理解你的意思了,找private: int a;赋值的地方
superspring 2009-11-23
  • 打赏
  • 举报
回复
one应该算delcaration,而不是definition
jackyjkchen 2009-11-23
  • 打赏
  • 举报
回复
应该是one吧,只有他是成员变量
内容概要:本文系统研究了谐振式双有源桥(DAB)变换器的无传感模型预测控制(MPC)方法,旨在通过Simulink仿真平台实现无需电流传感器的高性能控制策略,从而提升系统可靠性并降低硬件成本。研究深入分析了串联谐振型DAB变换器的工作原理与数学建模过程,构建了完整的无电流传感MPC控制框架,重点解决了系统状态观测、预测模型构建、控制律设计及稳定性保障等关键问。文中详细阐述了状态观测器的设计原理,实现了对关键电流状态的精确估计,并结合模型预测控制算法优化动态响应性能,有效应对功率波动与负载变化。通过对闭环系统的仿真验证,充分展示了该方法在动态性能、鲁棒性与控制精度方面的优越表现,为电力电子系统中先进控制策略的应用提供了可复现的技术路径。; 适合人群:具备电力电子技术、自动控制理论及Simulink仿真基础,从事新能源发电、储能系统、电动汽车、直流微网等领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①研究无电流传感器条件下高动态性能DAB变换器的控制方案设计;②掌握模型预测控制与状态观测器在电力变换系统中的集成方法;③通过Simulink仿真复现先进控制策略,支撑高水平科研论文撰写、课申报或实际工程项目开发。; 阅读建议:建议结合所提供的Simulink仿真模型进行动手实践,重点关注状态观测器与MPC控制器的参数设计与耦合关系,对照文中“完美复现”案例逐步调试,深入理解控制算法的实现细节与性能优化方法,以全面提升理论分析与工程应用能力。

65,210

社区成员

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

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