new TOraSession或者TComponent所有子类时的问题

tung_us 2008-08-21 05:02:42

我创建:

new TOraSession(TComponent* Owner);
new TOraSession(const TOraSession &);

第一行是指创建的组件属于谁谁
第二行是什么意思?该写什么?

TComponent的子类创建都是这个问题,在第二行该写自己的指针吗?这样
oo = new TOraSession(oo);
这样会产生异常。

高手请解释一下const TOraSession &是什么意思!

thx

...全文
144 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
tung_us 2008-09-16
  • 打赏
  • 举报
回复


楼上的高手非常棒,谢谢啦!
jxw1987628 2008-09-05
  • 打赏
  • 举报
回复
那要看你的类是如何定义的

如果类里面public区域定义有无参数的构造函数如TOraSession()并有实现体,那么你调用

new TOraSession()就是合法的,否则编译器就是报调用未定义的函数Call of None Function!


只有第2个问题。他是根据参数来匹配的,和第1个问题相似

NULL其实就是(void*)0,它代表一个指向空的‘万能指针’,所以匹配那个参数为指针的构造函数

如果你是这样调用的

TOraSession *p=new TOraSession(NULL);//这个匹配指针参数的那个构造函数
TOraSession *q=new TOraSession(*p);//这个匹配参数为引用的那个构造函数
tung_us 2008-09-05
  • 打赏
  • 举报
回复


对于
new TOraSession(TComponent* Owner);
new TOraSession(const TOraSession &);
这两种构造我已经明白了。

还有最后一个问题,
在写构造函数的时候,为什么只有这两种形式,而没有new TOraSession(); 呢?
这种才是最常用的形式啊?
如果写new TOraSession(NULL);那么它是匹配new TOraSession(TComponent* Owner); 还是匹配new TOraSession(const TOraSession &); 呢?


对楼上高手的耐心表示感谢!!
tung_us 2008-08-28
  • 打赏
  • 举报
回复


这里是TOraSession的构造函数,他为什么还有引用过来一个TOraSession呢?
jxw1987628 2008-08-28
  • 打赏
  • 举报
回复
是啊,这个属于拷贝构造函数

namespace JXW
{
//pin
class CPin
{
public:
int iPinID;
int iOfNetID;
int iOfNailID;
int iOfPartID;
int iOfNailID_Update;
String strPinName;
String strExtPartName;
String strExtNetName;

public:
CPin();
CPin(const CPin& x);
virtual ~CPin();
virtual void Clear();
};


using namespace JXW;

///////////////////////////////////////////////////////////////
/// CPin
//////////////////////////////////////////////////////////////
void CPin::Clear()
{
iPinID=-1;
iOfNetID=-1;
iOfNailID=0;
iOfNailID_Update=-2008; //for update
iOfPartID=-1;
strPinName="";
strExtPartName="";
strExtNetName="";
}
CPin::CPin()
{
iPinID=-1;
iOfNetID=-1;
iOfNailID=0;
iOfNailID_Update=-2008;
iOfPartID=-1;
strPinName="";
strExtPartName="";
strExtNetName="";
}
CPin::CPin(const CPin& x)
{
iPinID=x.iPinID;
iOfNetID=x.iOfNetID;
iOfNailID=x.iOfNailID;
iOfPartID=x.iOfPartID;
iOfNailID_Update=x.iOfNailID_Update;
strPinName=x.strPinName;
strExtPartName=x.strExtPartName;
strExtNetName=x.strExtNetName;

}
CPin::~CPin()
{
//edit by man bu zhe
}



如果你还有什么不明白的,先看看C++类的构造函数这方面的书吧
jxw1987628 2008-08-27
  • 打赏
  • 举报
回复
你先理解下引用的概念吧

    
int a=100;
int& b=a; //b是a的一个别名而已,实际上b没有占用内存,a,b都是内存的同1个地方的值
b=99; //这里实际上把a的指给改变了,a变成99了
printf("%d",a);
getchar();


传递了1个引用,那么那里的TOraSession就是实际上传递过来的对象!
tung_us 2008-08-27
  • 打赏
  • 举报
回复


楼上说得很详细!THX

那么,第二行的引用过来的TOraSession是谁呢?我想问的是他的实际意义,在构造函数里面引用一个TOraSession是什么意思?

如果这里用NULL是可以的,那么又代表什么意思?
jxw1987628 2008-08-21
  • 打赏
  • 举报
回复
第一行是 创建的组建是属于Owner指针指向的对象

第2行 也是调用构造函数构造对象。只是构造函数的参数是一个const TOraSession &类型,这个是1个const引用,和指


针类似。它实际上是指传递进来的对象,加上const修饰符表示这个对象的成员数据是不允许在这个构造里被修改的!)
源码链接: https://pan.quark.cn/s/8ddf8a1c92f9 **libcurl用于获取大型文件**libcurl作为一个开源的C语言库,提供了一系列的API来处理与URL相关的任务,涵盖了HTTP、FTP、SMTP等多种网络协议的应用。在执行大型文件的下载操作,libcurl展现出卓越的性能表现和高度的灵活性,能够高效地管理大文件传输过程,有效预防内存溢出及其他潜在问题。**libcurl的基础操作**libcurl的基础应用包括以下几个环节:1. **初始化**:需要借助`curl_global_init()`函数来启动libcurl的工作环境。2. **建立会话句柄**:通过`curl_easy_init()`函数创建一个会话句柄,该句柄将用于后续所有的操作流程。3. **配置选项**:运用`curl_easy_setopt()`函数来设定多种参数,例如目标URL、超间、重试次数以及数据写入的回调函数等。4. **执行请求**:调用`curl_easy_perform()`函数来实施下载操作。5. **释放资源**:使用`curl_easy_cleanup()`函数来释放已经占用的资源。**获取大型文件的重要设置**1. **数据写入回调函数**:在处理大型文件下载,通常不希望一次性将整个文件载入内存。可以配置`CURLOPT_WRITEFUNCTION`选项,指定一个回调函数来处理接收到的数据片段,这样libcurl在接收到数据会调用该函数,使得我们可以按需将数据写入文件或缓冲区。2. **缓冲策略**:可以设定缓冲区的大小(比如,通过`CURLOPT_BUFFERSIZE`),来控制每次接收数据的数量,从而优化内存...
内容概要:本文档整合了《鬼谷子·决篇》与《三略·审权变第三》《差德行第四》三大古代智慧典籍,构建了一套“决策+形势+用人”三位一体的领导力提升体系。通过28天三合实战路径、三维诊断工具、9个实用模板及独特的“身体锚点”仪式,系统解决管理者在决策犹豫、形势误判、人岗错配等方面的痛点。全文涵盖理论溯源、方法论拆解(如三步决策法、审权变四步法、差德行四步法)、历史案例对照(范蠡 vs 项羽)以及跨资源联动建议,形成从认知到实践的完整闭环。; 适合人群:中基层管理者、创业者、职场进阶者,尤其是面临决策困境、环境适应困难或团队用人问题的人群;具备一定管理经验或自我提升意识的个体亦可受益。; 使用场景及目标:① 提升重大事项的决策质量,避免反复纠结与事后后悔;② 增强对外部环境变化的敏感度与应对能力,实现灵活调整;③ 科学评估人才德才素质,实现人岗精准匹配,减少用人失误;④ 构建个人化的决策-应变-用人标准化流程(SOP)。; 阅读建议:建议按照28天路径逐步实践,结合自测表定位短板,优先突破薄弱模块;配套工具模板需实际填写使用,配合身体锚点仪式强化行为记忆;可与“诸葛亮决策术”“立将威信术”等单品联动,全面提升领导力体系。

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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