• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > 这两个调用构造函数实例化对象的代码是什么意思?

这两个调用构造函数实例化对象的代码是什么意思?

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了实例构造函数,实例化构造函数,构造柱钢筋计算实例,构造柱计算实例,构造柱模板计算实例等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 这两个调用构造函数实例化对象的代码是什么意思?
描述:

两行调用构造函数实例化对象的代码如下:
CMoveFileTask* pMoveFileTask = new CMoveFileTask(m_hStop);
new CFaxTask(m_hStop, pMoveFileTask)
但我看不明白这两句代码能起什么作用?因为其构造函数的意思和句法我也看不懂:
请哪位大侠给解释一下?
1:
CMoveFileTask::CMoveFileTask(HANDLE hStop) :
CTask(hStop),
m_lpszFTPFolder(NULL)
{
}
2:
CRecordTask::CRecordTask(HANDLE hStop, CMoveFileTask* pMoveFileTask) :
CMakeFileTask(hStop, pMoveFileTask),
m_dwWrongItemTimeLine(0),
m_dwCheckPoint(0),
m_lpszCurTable(NULL)
{
}
3:
CFaxTask::CFaxTask(HANDLE hStop, CMoveFileTask* pMoveFileTask) : CRecordTask(hStop, pMoveFileTask)
{
}
说明:这套代码看得我头晕。其中类的结构很复杂。现简单说明其头文件中class的定义:
class CFaxTask : public CRecordTask
class CRecordTask : public CMakeFileTask
class CMakeFileTask : public CTask
class CMoveFileTask : public CTask
功能说明:
从数据库中读取数据(CRecordTask),生成文件(CMakeFileTask),然后在一定时候后移走(CMoveFileTask)。其触发的代码就是我上面提到的那两句。


解决方案1:

就是的,哪也不复杂啊,随便找本C++的书上都会介绍啊.

解决方案2:

这种一个类里面又包含另一个类的结构,在OO上有一个专用名词,好像叫做layout
里面的类作为外壳的一个成员变量
按照C++的语意,类在初始化的时候就是要将其中的成员变量初始化
因为这个变量其实是一个类的实例
所以必须要调用它自己的构造函数来初始化,而不能直接用赋值的方式初始化
所以上面的成员初始化表列CTask(hStop),看起来就如同调用构造函数一般,hStop就是构造函数的参数

解决方案3:

1、子类不继承父类的构造函数,如果没有CTask(hStop),则父类的构造函数不被调用,父类中实现的相关初始化不会执行,所以要得(只有一个子类对象,只是使用父类声明中实现的代码)。
2、只执行构造函数,不执行其他。

解决方案4:

简言之,就是用括号中的值,去初始化该对象/变量,与赋值不同的是,这会触发构造函数。
引用,const对象,必须要用这种方式予以初始化。
他们所代表的语意是不同的。

解决方案5:

成员初始化表列而已。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 这两个调用构造函数实例化对象的代码是什么意思?

相关文章

  • 2017-06-04 WriteProcessMemory请问怎样写入字符串
  • 2017-06-05 在钩子中,调用CreateProcess()启动外部程序的问题,帮忙啊
  • 2017-06-04 连接不了mysql,怎么回事?
  • 2017-06-04 为什么我的出现重复包含呢?
  • 2017-06-05 为什么一个程序在调试的情况下可以运行,但是生成了可执行文件后就不能正常运行了呢?
  • 2017-06-04 如何隐藏接口函数
  • 2017-06-04 VC60MFCADO调用theapp指针内存报错
  • 2017-06-04 关于udp的一个奇怪的情况
  • 2017-06-04 在那可以买到水货笔记本电脑???
  • 2017-06-05 VC完全端口接收数据出现问题

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 想响应ado的中记录集的事件,就是通过不了向com高手求救
    • 有什么方法把接口指针转换为相应的类指针
    • OLEWORDOCX怎么让他始终在不激活状态?
    • 如果我不调用CoUninitialize发现Debug并没有报告内存泄漏啊
    • 在线等待:在com里不能使用CArray等模板,如何解决呢?
    • ACTIVEX控件在RichEditCtrl中响应鼠标消息
    • 怎么返回一个BSTR的Array给javascript
    • com调用的疑惑?
    • 怎么接IPicture保存为图片
    • WaitForMultipleObjects的问题??

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有