面试中遇到的问题,求解答

小小蔷薇 2011-10-28 10:23:21
1、函数指针一般用在什么时候,为什么用函数指针

2、写程序:
输入0,输出0
输入1,输出
111
101
111
输入2,输出
22222
21112
21012
21112
22222
依此类推,输入只限于0~9

3、C++语言多态性体现在哪里?

...全文
221 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
小小蔷薇 2011-11-25
  • 打赏
  • 举报
回复
原来多态性是这么回事:
从广义上说,多态性是指一段程序能够处理多种类型对象的能力。在C++语言中,这种多态性可以通过强制多态、重载多态、类型参数化多态、包含多态4种形式来实现。
强制多态是通过将一种类型的数据转换成另一种类型的数据来实现的,也就是数据类型转换(显示或隐式)。重载是指给同一个名字赋予不同的含义(函数重载或运算符重载)。这两种多态属于特殊多态性,只是表面的多态性。
包含多态和类型参数化多态属于一般多态性,是真正的多态性。C++中采用虚函数实现包含多态。虚函数是多态性的精华。模板是C++实现参数化多态的工具,分为函数模板和类模板两种。
qq120848369 2011-10-28
  • 打赏
  • 举报
回复
22222
21112
21012
21112
22222

很有规律嘛,是1/4对称的,我们就算左上角的矩阵。

第一行是3个2,第二行是2个1,第三行是1个0,对于每一行,红色数字之前的数字均打印一个。

3333333
3222223
3211123
3210123
3211123
3222223

也一样,第一行4个3,第二行3个2,第三行2个1,第四行1个0

gold_water 2011-10-28
  • 打赏
  • 举报
回复
使用DLL中函数时,有时需要
浪游东戴河 2011-10-28
  • 打赏
  • 举报
回复
程序跳到绝对地址时,用函数指针
机智的呆呆 2011-10-28
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 mingliang1212 的回复:]
c++的多态有两个方面:
运行时多态,也就是虚继承。

编译期多态,通过函数重载
[/Quote]
编译期多态是模板,函数重载是多态倒头一次听说...
iamnobody 2011-10-28
  • 打赏
  • 举报
回复
c++的多态有两个方面:
运行时多态,也就是虚继承。

编译期多态,通过函数重载
小小蔷薇 2011-10-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 liuduo251 的回复:]
函数指针多数是用来实现回调的吧,当你想把函数当参数使用,就用函数指针喽。

多态体现在虚继承吧
[/Quote]

函数指针,他说的好像跟DLL文件有点关系,但是我没弄明白哦
小小蔷薇 2011-10-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 demon__hunter 的回复:]
1 回调,实现command设计模式,接口和实现分离.
2
3 虚函数那
[/Quote]

多态性,他说除了虚函数,还有函数重载
liuduo251 2011-10-28
  • 打赏
  • 举报
回复
函数指针多数是用来实现回调的吧,当你想把函数当参数使用,就用函数指针喽。

多态体现在虚继承吧
ryfdizuo 2011-10-28
  • 打赏
  • 举报
回复
多态是问虚函数表吧。
2是输出同心矩形,变长为2*x + 1,x为输入的数,[0-9]
机智的呆呆 2011-10-28
  • 打赏
  • 举报
回复
1 回调,实现command设计模式,接口和实现分离.
2
3 虚函数那
luciferisnotsatan 2011-10-28
  • 打赏
  • 举报
回复
1 比如 回调函数
2 这个规律看不出来???
3 多态性体现在哪里?不清楚想问什么
yaningfan 2011-10-28
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 zhll879 的回复:]
有时候loadlibrary的时候,里面的函数可能会找不到,用函数指针就会怎么怎么。
这个我不太懂,所以没理解,不知道有没有人知道是什么情况?
怎么会找不到函数呢,用指针怎么会找到呢
[/Quote]
....因为有可能有些生成可执行模块和Dll模块的编译器是不一样的,这样编译器会修改dll中里面的函数的名称。如生成Dll文件的编译器可能会把里面的MyFun函数名称修改成_MyFun@8。这样的话,你在可执行模块中访问Dll的MyFun函数,使用的名称是MyFun。 如果生成可执行模块和Dll模块的编译器不同,在使用GetProcAddress时就会说函数找不到的,这是一种情况。还有一种情况就是两者的编译器都一样,你在可执行模块中使用MyFun函数时,实际上编译器会把它当成_MyFun@8, 函数指针用来保存_MyFun@8函数所在的进程地址空间的地址,以后就通过函数指针去访问这个函数。
小小蔷薇 2011-10-28
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 gold_water 的回复:]
使用DLL中函数时,有时需要
[/Quote]

他是说,有时候loadlibrary的时候,里面的函数可能会找不到,用函数指针就会怎么怎么。
这个我不太懂,所以没理解,不知道有没有人知道是什么情况?
怎么会找不到函数呢,用指针怎么会找到呢
yaningfan 2011-10-28
  • 打赏
  • 举报
回复
参考

#include "stdafx.h"
#include <iostream>
using namespace std;
typedef unsigned char BYTE;

int _tmain(int argc, _TCHAR* argv[])
{
cout<<"请输入0-9之间的数:";
char i;
cin>>i;
while (i < '0' || i > '9') {
cout<<"请输入0-9之间的数:";
cin>>i;
}

int num = 2 * (i-48) + 1;
BYTE* arry = new BYTE[num];

// 初始化数组,并输出第一行
for(int j = 0; j < num; j++) {
arry[j] = (i-48);
cout<<(i-48)<<" ";
}
cout<<endl;

int mid = num / 2 + 1;
for(int j = 1; j < num; j++) { // 修改数组中数据
int tmp = num - j;
if(j < mid) {
for(int z = j; z < tmp; z++)
arry[z] -= 1;
}
else {
for(int z = tmp; z < j; z++)
arry[z] += 1;
}

// 修改后,输出这一行
for(int s = 0; s < num; s++) {
cout<<(short)arry[s]<<" ";
}
cout<<endl;
}

delete[] arry;
return 0;
}

内容概要:本文围绕“非线性流量的数据驱动Koopman模型预测控制研究”展开,提出一种基于数据驱动的Koopman算子理论方法,用于构建非线性系统的线性化状态空间模型,并结合模型预测控制(MPC)实现对复杂非线性系统的高效控制。研究通过引入扩展动态模态分解(EDMD)等观测函数,将非线性动力学映射至高维特征空间,在该空间实现近似线性化表征,进而融合线性MPC框架进行优化求解。全文系统阐述了Koopman算子的数学基础、隐式线性化机制及在非线性流量控制的建模流程,并通过Matlab代码完成了算法实现与仿真实验,验证了该方法在处理无精确物理模型、强非线性、时变动态系统的有效性与鲁棒性,尤其适用于工业流程控制、能源系统调度等实际工程场景。; 适合人群:具备自动控制理论、非线性系统分析基础,熟悉Matlab编程,从事控制工程、系统辨识、智能优化、能源系统建模等方向的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于难以建立精确数学模型的复杂非线性系统(如流体动力系统、电力电子系统、机器人动力学等)的建模与实时控制;②实现数据驱动下的模型预测控制,提升系统响应速度与控制精度;③为先进控制策略(如MPC)提供一种可行的线性化建模范式,推动现代控制理论与数据科学、机器学习的深度融合。; 阅读建议:建议读者结合提供的Matlab代码深入理解Koopman方法的具体实现过程,重点关注观测函数构造、核函数选择、矩阵逼近、降维处理及MPC控制器设计等关键技术环节,并尝试将其迁移至其他非线性系统进行复现实验与性能对比,以全面掌握其适用范围与局限性。
内容概要:本文详细介绍了一种基于Simulink的光伏储能单相逆变器并网仿真模型,系统涵盖了光伏阵列、储能单元、DC-AC单相逆变器及并网接口的完整结构,重点实现了储能环节的能量管理与逆变器并网控制策略的建模仿真。通过Simulink平台构建系统模型,验证了逆变器输出电能质量、并网稳定性以及控制系统的动态响应性能,采用SPWM调制、PI闭环控制等关键技术,确保并网电流与电网电压同频同相,满足并网电能质量要求。该模型不仅可用于分布式能源系统的仿真研究,还可作为新能源并网技术的教学与工程实践工具。; 适合人群:电气工程、自动化、新能源科学与工程等相关专业的高校本科生、研究生、科研人员,以及从事光伏发电系统设计、储能控制与并网技术研发的工程技术人员。; 使用场景及目标:①深入理解光伏储能系统能量转换、存储与并网控制的整体工作原理;②支持课程设计、毕业设计或科研项目对单相逆变器控制策略(如SPWM、PI调节、锁相技术等)的仿真验证与参数优化;③为后续研究更复杂的控制算法(如MPPT、低电压穿越、谐波抑制等)提供可扩展的仿真基础平台。; 阅读建议:建议结合MATLAB/Simulink环境动手搭建与调试模型,逐步理解各模块(如光伏建模、储能充放电控制、逆变器驱动、锁相环、PI调节器等)的功能与交互关系,重点关注控制系统的设计逻辑与参数整定过程,并可通过修改负载条件或电网参数测试系统鲁棒性,为进一步拓展至三相系统或多机并网场景奠定基础。

65,212

社区成员

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

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