怎么在这个函数系统后面加一个jq追加函数?使得函数显示时能输入多人的信息

当前位置:
C++中的虚函数(一)
C++中的虚函数(一)
发布日期: 17:12
浏览次数:13529次
标  签:MFC,C++
文章评分:5.0
操  作:
称号:未设置简介:...
文章概要:
虽然很难找到一本不讨论多态性的C++书籍或杂志,但是,大多数这类讨论使多态性和C++虚函数的使用看起来很难。我打算在这篇文章中通过从几个方面和结合一些例子使读者理解在C++中的虚函数实现技术。说明一点,写这篇文章只是想和大家交流学习经验因为本人学识浅薄,难免有一些错误和不足,希望大家批评和指正,在此深表感谢!
虽然很难找到一本不讨论多态性的C++书籍或杂志,但是,大多数这类讨论使多态性和C++虚函数的使用看起来很难。我打算在这篇文章中通过从几个方面和结合一些例子使读者理解在C++中的虚函数实现技术。说明一点,写这篇文章只是想和大家交流学习经验因为本人学识浅薄,难免有一些错误和不足,希望大家批评和指正,在此深表感谢!
一、 基本概念
首先,C++通过虚函数实现多态."无论发送消息的对象属于什么类,它们均发送具有同一形式的消息,对消息的处理方式可能随接手消息的对象而变"的处理方式被称为多态性。"在某个基类上建立起来的类的层次构造中,可以对任何一个派生类的对象中的同名过程进行调用,而被调用的过程提供的处理可以随其所属的类而变。"虚函数首先是一种成员函数,它可以在该类的派生类中被重新定义并被赋予另外一种处理功能。
二、 虚函数的定义与派生类中的重定义
class 类名{
virtual 成员函数说明;
class 类名:基类名{
virtual 成员函数说明;
三、 虚函数在内存中的结构
1.我们先看一个例子:
#include "iostream.h"
#include "string.h"
virtual void fun0() { cout && "A::fun0" && }
int main(int argc, char* argv[])
cout && "Size of A = " && sizeof(a) &&
结果如下:Size of A = 4
2.如果再添加一个虚函数:virtual void fun1() { cout && "A::fun" &&}
得到相同的结果。如果去掉函数前面的virtual修饰符
void fun0() { cout && "A::fun0" && }
int main(int argc, char* argv[])
cout && "Size of A = " && sizeof(a) &&
结果如下:Size of A = 1
3.在看下面的结果:
virtual void fun0() { cout && "A::fun0" && }
int main(int argc, char* argv[])
cout && "Size of A = " && sizeof(a) &&
结果如下:Size of A = 12
其实虚函数在内存中结构是这样的:
在window2000下指针在内存中占4个字节,虚函数在一个虚函数表(VTABLE)中保存函数地址。在看下面例子。
virtual void fun0() { cout && "A::fun0" && }
virtual void fun1() { cout && "A::fun1" && }
int main(int argc, char* argv[])
cout && "Size of A = " && sizeof(a) &&
结果如下:结果如下:
Size of A = 4
虚函数的内存结构如下,你也可以通过函数指针,先找到虚函数表(VTABLE),然后访问每个函数地址来验证这种结构,在国外网站作者是:Zeeshan Amjad写的"ATL on the Hood中有详细介绍"
4.我们再来看看继承中虚函数的内存结构,先看下面的例子
virtual void f() { }
virtual void f() { }
virtual void f() { }
class Drive : public A, public B, public C {
int main() {
cout && "Size is = " && sizeof(d) &&
结果如下:Size is = 12 ,相信大家一看下面的结构图就会很清楚,
5.我们再来看看用虚函数实现多态性,先看个例子:
virtual void f() { cout && "A::f" && }
class B :public A{
virtual void f() { cout && "B::f" &&}
class C :public A {
virtual void f() { cout && "C::f" &&}
class Drive : public C {
virtual void f() { cout && "D::f" &&}
int main(int argc, char* argv[])
结果:A::f
不用解释,相信大家一看就明白什么道理!注意:多态不是函数重载
6.用虚函数实现动态连接在编译期间,C++编译器根据程序传递给函数的参数或者函数返回类型来决定程序使用那个函数,然后编译器用正确的的函数替换每次启动。这种基于编译器的替换被称为静态连接,他们在程序运行之前执行。另一方面,当程序执行多态性时,替换是在程序执行期进行的,这种运行期间替换被称为动态连接。如下例子:
virtual void f(){cout < <
"A::f" < <};
class B:public A{
virtual void f(){cout < <
"B::f" < <};
class C:public A{
virtual void f(){cout < <
"C::f" < f();
int main(int argc, char* argv[])
B *b=new B;
C *c=new C;
cout< < "type
B for class B,C for class C:"< >
if(choice==''b'')
else if(choice==''c'')
}while(1);
cout< < endl< <
在上面的例子中,如果把类A,B,C中的virtual修饰符去掉,看看打印的结果,然后再看下面一个例子想想两者的联系。如果把B和C中的virtual修饰符去掉,又会怎样,结果和没有去掉一样。&
7.在基类中调用继承类的函数(如果此函数是虚函数才能如此)
还是先看例子:
virtual void fun() {
cout && "A::fun" &&
void show() {
class B : public A {
virtual void fun() {
cout && "B::fun" &&
int main() {
打印结果:A::fun&
在6中的例子中,test(A *a)其实有一个继承类指针向基类指针隐式转化的过程。可以看出利用虚函数我们可以在基类调用继承类函数。但如果不是虚函数,继承类指针转化为基类指针后只可以调用基类函数。反之,如果基类指针向继承类指针转化的情况怎样,这只能进行显示转化,转化后的继承类指针可以调用基类和继承类指针。如下例子:
void fun() {
cout && "A::fun" &&
class B : public A {
void fun() {
cout && "B::fun" &&
void fun0() {
cout && "B::fun0" &&
int main() {
A *a=new A;
B *b=new B;
pb=static_cast(a); //基类指针向继承类指针进行显示转化
pb-&fun0();
pb-&fun();
&参考资料:
1.科学出版社 《C++程序设计》
2.Zeeshan Amjad 《ATL on the Hood》
是有点小错,不过无关紧要,讲得很清楚,谢谢楼主我头不晕了。
13:30 发表
有点小错误,不过很感谢我明白了。
13:53 发表
最多还可以输入100字
【VIP年会员制套餐】
【C/C++软件工程师实战能力集训大纲】
VC知识库发布了C/C++业界的“本草纲目”
【牛人都在千人一号群! 加群三步走!!!】
第一步:请必须加VC知识库QQ: 为好友;
第二步:请必须关注本站微博:
第三步:申请加入群:.(必须将关注微博截屏发到QQ方可通过!)
【最新2013:】
全部100% VC++源码提供: E-Form++全新大型SCADA & HMI解决方案源码、CAD解决方案源码、Gis解决方案源码 、电力石油化工仿真与图形建模解决方案源码、大量其他高级制图VC++源码下载!
【 新视频发布】
o o o o o o o o o o
Foxmail 新版中有一个《邮件特快专递》的功能。起先搞不懂如何用,后来知道要在“工具->系统选项”那边设置“本地 DNS 服务器的IP地址”。
  觉得这个新功能蛮好用的。不需要通过SMTP代理,可以直接通过本地往邮箱所在的邮件交换器发送邮件。在暑假一开始想在 VC++ 中实现这个功能。用 IRIS 截包后,发现程序中有 mx8.263.net 发送邮箱,不知道这个是什么东西,所以作罢。后来才想到这个就是 263.net 的MX记录主机,原来特快专递的原理就是往这个主机上发送数据就行。...
Foxmail 新版中有一个《邮件特快专递》的功能。起先搞不懂如何用,后来知道要在“工具->系统选项”那边设置“本地 DNS 服务器的IP地址”。
  觉得这个新功能蛮好用的。不需要通过SMTP代理,可以直接通过本地往邮箱所在的邮件交换器发送邮件。在暑假一开始想在 VC++ 中实现这个功能。用 IRIS 截包后,发现程序中有 mx8.263.net 发送邮箱,不知道这个是什么东西,所以作罢。后来才想到这个就是 263.net 的MX记录主机,原来特快专递的原理就是往这个主机上发送数据就行。...
本文介绍了套接字编程的基本知识。...调用一个函数GetTwoInts,由它来返回两个从键盘读入的100以内的整数,然后计算这两个整数之和,并把答案显示出来。要求:在主函数中不能使用scanf等函数直接输入这两个整数,而必须通过调用GetTwoInts函数来完成,在GetTwoInts函数中可以使用scanf函数。必
调用一个函数GetTwoInts,由它来返回两个从键盘读入的100以内的整数,然后计算这两个整数之和,并把答案显示出来。要求:在主函数中不能使用scanf等函数直接输入这两个整数,而必须通过调用GetTwoInts函数来完成,在GetTwoInts函数中可以使用scanf函数。必 20
不区分大小写匿名
很多比我注册晚的人分数都比我多,
不错不错.,..我喜欢
相关知识等待您来回答
电脑常识领域专家根据匀加速直线运动的公式:进行推理;根据匀加速直线运动的公式:进行推理;找出每段函数上的两个点,利用待定系数法解答.
小时时的风速为;小时时风速为.设减速时间为,则,解得小时.沙尘暴从发生到结束,共经过小时.设解析式为,当时,把,代入得,,解得,故解析式为,;当时,由于风速不变得,,;当时,把,代入得,,解得,故解析式为,.
此题考查了一次函数的应用,由于此题与物理知识相结合,要熟悉匀加速与匀减速直线运动的公式,并要用分段函数表示.
3803@@3@@@@一次函数的应用@@@@@@253@@Math@@Junior@@$253@@2@@@@一次函数@@@@@@51@@Math@@Junior@@$51@@1@@@@函数@@@@@@7@@Math@@Junior@@$7@@0@@@@初中数学@@@@@@-1@@Math@@Junior@@
第三大题,第6小题
求解答 学习搜索引擎 | 某气象研究中心观测一场沙尘暴从发生到结束的全过程.开始时风速平均每小时增加2km/h,4h后,沙尘暴经过开阔荒漠地,风速变为平均增加4km/h.一段时间,风速保持32km/h不变.当沙尘暴遇到绿色植被区时,其风速平均每小时减l千米/时.第40h时,测得风速为17km/h,结合风速及时间的图象,回答下列问题:(1)在y轴(
)内填入相应的数值;(2)沙尘暴从发生到结束,共经过多少小时?(3)求出当x大于等于4时,风速y(km/h)与时间x(h)之间的函数关系式.请问在电子表格的一列数据的前面或者后面添加同样的数据怎么操作,用个什么函数?谢谢!_百度知道
请问在电子表格的一列数据的前面或者后面添加同样的数据怎么操作,用个什么函数?谢谢!
提问者采纳
在数据前或后面增加一列,输入你要添加的数据,然后用CONCATENATE函数,将其合并成一列,合并后直接复制-粘贴数值后,可把原来的列删掉了。
提问者评价
成功了,非常感谢!!
其他类似问题
按默认排序
其他1条回答
选中这列数据,右击→设置单元格格式→数字→自定义为(如前面加123)&123&0 →确定。 或: 0&123& (在后面加)
电子表格的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁通达信的工作人员,建议你们增加一个NUMTOSTRN函数,自定义显示小数点位数
理想高二级同学
通达信的工作人员,建议你们增加一个NUMTOSTRN函数,自定义显示小数点位数
浏览:6807
欢迎光临理想论坛,由于您没有登录,所以无法查看到论坛的附件及隐藏分区,也无法与其他会员交流。
还没有理想论坛的帐号?
目前通达信默认就是显示小数点三位数,缺少灵活性,有些明明只是整数计算,举例子比如整数计算得出结果是8,通达信总是要写成8.000,导致数字挤在一起很难受,建议增加一个NUMTOSTRN函数,自定义小数点位数就好了,能让一些版面简洁不少
NUMTOSTRN是大智慧的一个函数,意思是将数字转化为字符串。NUMTOSTRN(N,M),将N转化为字符串返回,精确到小数点后M位。例如:NUMTOSTRN(close,5)将返回收盘价对应的字符串,例如'15.78000'股票论坛
积分10256&理想币409 个&彩币0 个&共享币1527 个&注册时间&
理想小一级同学
这个函数有用啊。。。。。
积分43&理想币31 个&彩币5 个&共享币5 个&注册时间&
理想大一级同学
走过路过.....
积分37730&理想币14816 个&彩币1 个&共享币5960 个&注册时间&
理想高二级同学
支持一下,也是我需要的!
积分14873&理想币4187 个&彩币0 个&共享币871 个&注册时间&
理想高二级同学
最新版的公式管理器是这样的
(22.44 KB)
时间: 08:41
积分13312&理想币4988 个&彩币0 个&共享币3 个&注册时间&
理想高二级同学
支持一下,也是我需要的!
积分17858&理想币8319 个&彩币0 个&共享币0 个&注册时间&
理想高二级同学
INTPART(STR2CON(EXTERNSTR(0,n)
取整数最简单,干嘛非要小数
积分17652&理想币2690 个&彩币1 个&共享币226 个&注册时间&
理想高二级同学
一介小散,真的在乎那几分几毛
积分17728&理想币6925 个&彩币0 个&共享币3 个&注册时间&
理想高三级同学
同意你的意见。。。。。。。。。。
积分23474&理想币8175 个&彩币0 个&共享币815 个&注册时间&
理想高二级同学
其实 我最需要的是能随光标移动的函数……
积分13312&理想币4988 个&彩币0 个&共享币3 个&注册时间&
理想高一级同学
回复 楼主 @黄金土豆
VAR2STR(A,N):取A的每一个值转为字符串,小数位数N.
CON2STR(A,N):取A最后的值(非序列值)转为字符串,小数位数N.
积分9185&理想币203 个&彩币0 个&共享币61 个&注册时间&
理想高二级同学
目前没有公式做得到,楼上几个朋友提供的办法无效,必须新增加函数才行,不信你们自己测试一下就知道,比如我要求保留小数点后两位数字,通达信任何公式都做不到
积分10256&理想币409 个&彩币0 个&共享币1527 个&注册时间&
理想高二级同学
引用:原帖由
10:49 发表
其实 我最需要的是能随光标移动的函数……&&&&把函数名、作用、图
告诉我,我来建议建议。
积分18609&理想币13268 个&彩币0 个&共享币4883 个&注册时间&
粉丝:1281
理想荣誉会员(菠菜一段)
积分130443&理想币105990 个&彩币166 个&共享币600 个&注册时间&
理想高二级同学
引用:原帖由
11:46 发表
把函数名、作用、图
告诉我,我来建议建议。&&&&我用两个飞狐的简单公式举个例子吧(数值和标尺随光标移动显示){公式一}
DRAWTEXTEX(CLOSE,1,200,550,'突破前高:'),COLORWHITE;
DRAWTEXTEX(CLOSE,1,240,600,'前高5%:'),COLORGREEN;
DRAWTEXTEX(CLOSE,1,240,650,'前高10%:'),COLORRED;
DRAWTEXTEX(CLOSE,1,240,700,'前高15%:'),COLORYELLOW;
DRAWTEXTEX(BARPOS,1,310,600,NUMTOSTR(REF(H*1.05,BARSCOUNT(CLOSE)-SYSPARAM(1)),2)),COLORGREEN;
DRAWTEXTEX(BARPOS,1,310,650,NUMTOSTR(REF(H*1.10,BARSCOUNT(CLOSE)-SYSPARAM(1)),2)),COLORRED;
DRAWTEXTEX(BARPOS,1,310,700,NUMTOSTR(REF(H*1.15,BARSCOUNT(CLOSE)-SYSPARAM(1)),2)),COLORYELLOW;
(16.15 KB)
时间: 12:44
A1:=CLOSE;
A2:=CLOSE*1.05;
A3:=CLOSE*1.1;
A4:=CLOSE*1.2;
B1:='------------------------ '+NUMTOSTR(A1[SYSPARAM(1)],3)+'&&CLOSE';
B2:='------------------------ '+NUMTOSTR(A2[SYSPARAM(1)],3)+'&&5%';
B3:='------------------------&&'+NUMTOSTR(A3[SYSPARAM(1)],3)+'&&10%';
B4:='------------------------ '+NUMTOSTR(A4[SYSPARAM(1)],3)+' 20%';
DRAWTEXT(BARPOS=SYSPARAM(1),CLOSE,B1),PXUP8,colorFFFFFF;
DRAWTEXT(BARPOS=SYSPARAM(1),CLOSE*1.05,B2),PXUP8,colorFFFF;
DRAWTEXT(BARPOS=SYSPARAM(1),CLOSE*1.1,B3),PXUP8,colorFFFF;
DRAWTEXT(BARPOS=SYSPARAM(1),CLOSE*1.2,B4),PXUP8,colorFFFF;
DRAWTEXT(BARPOS=SYSPARAM(1),LOW*0.99,'▲'),ALIGN0,colorFFFF;
D1:=CLOSE*0.95;
D2:=CLOSE*0.9;
D3:=CLOSE*0.8;
E1:='------------------------ '+NUMTOSTR(D1[SYSPARAM(1)],3)+'&&-5%';
E2:='------------------------ '+NUMTOSTR(D2[SYSPARAM(1)],3)+'&&-10%';
E3:='------------------------&&'+NUMTOSTR(D3[SYSPARAM(1)],3)+'&&-20%';
DRAWTEXT(BARPOS=SYSPARAM(1),CLOSE*0.95,E1),PXUP8,colorFF00;
DRAWTEXT(BARPOS=SYSPARAM(1),CLOSE*0.9,E2),PXUP8,colorFF00;
DRAWTEXT(BARPOS=SYSPARAM(1),CLOSE*0.8,E3),PXUP8,colorFF00;
(12.46 KB)
时间: 12:44
(14.48 KB)
时间: 12:44
(15.84 KB)
积分13312&理想币4988 个&彩币0 个&共享币3 个&注册时间&
理想高二级同学
感谢老师的精彩分析!学生受益匪浅!
积分13043&理想币3306 个&彩币0 个&共享币3578 个&注册时间&
理想高二级同学
引用:原帖由
12:44 发表
我用两个飞狐的简单公式举个例子吧(数值和标尺随光标移动显示){公式一}
DRAWTEXTEX(CLOSE,1,200,550,'突破前高:'),COLORWHITE;
DRAWTEXTEX(CLOSE,1,240,600,'前高5%:'),COLORGREEN;
DRAWTEXTEX(CLOSE,1,240 ...&&&&辛苦你了,谢谢。
刚刚和领导沟通了一下,目前资源不够,可能需要时间来处理,下一步可能会去掉100个输出的限制以及增加光标函数。
一起等待吧。
=========================杨老师 北沙老师 ...
辛苦你了,谢谢,好,一起等吧。希望公式系 ...
积分18609&理想币13268 个&彩币0 个&共享币4883 个&注册时间&
理想高二级同学
增加一个函数简直是易如反掌的事情,这么多年了通达信也不增加这个函数我反应了好几次,客服啥也不懂是个菜鸟女生,自定义小数点位数的NUMTOSTRN函数增加一个就行
积分10256&理想币409 个&彩币0 个&共享币1527 个&注册时间&
理想初三级同学
精确到几分就行了,再后面就是几厘,大智慧搞个几厘才是弱智
积分7316&理想币224 个&彩币0 个&共享币125 个&注册时间&
理想高三级同学
谢谢楼主提供分享。。。。
积分28131&理想币12961 个&彩币0 个&共享币167 个&注册时间&
快速回复主题
禁用 URL 识别
使用个人签名
接收新回复邮件通知
发帖请务遵守本站的相关规则,所有发表(包括转发)政治、色情非法信息者本站将实时提供发贴者个人信息给公安局,追究责任,特此申明!
具体规则请参见《》
您需要登录后才可以发帖
发表帖子[完成后可按 Ctrl+Enter 发布]
理想论坛上的网友发表的帖子纯属个人意见,理想论坛不负任何责任!广告赞助商内容与本站无关!
工业和信息化部信息备案:
公安局网警备案:
理想论坛值班电话[8:30~17:00]: &#6 5518-1  &#6 5518-2(广告)
无安全提问
母亲的名字
爷爷的名字
父亲出生的城市
您其中一位老师的名字
您个人计算机的型号
您最喜欢的餐馆名称
驾驶执照的最后四位数字

我要回帖

更多关于 三角函数 的文章

 

随机推荐