不能找到匹配的构造函数

jiangmuchen 2013-03-07 11:54:17
错误提示:
[C++ Error] Main.cpp(19): E2285 Could not find a match for 'TClientSocketThread::TClientSocketThread(bool)'

头文件:

class TServerThread:public TClientSocketThread
{
private:
String s;
protected:
void __fastcall SyncProc();
public:
__fastcall TServerThread(bool CreateSuspended);
};

实现文件:

__fastcall TServerThread::TServerThread(bool CreateSuspended)
: TClientSocketThread(CreateSuspended)
{
;//
}

顺带再问一句这个构造函数的最后来了一下 :TClientSocketThread(CreateSuspended) 是指新的构造函数是基于 基类的构造函数之上的吗?
//-------------------------------------------------------------
第二个问题;
错误2:[C++ Error] Main.cpp(72): E2285 Could not find a match for 'TServerThread::TServerThread()'

void __fastcall TForm1::TcpServer1GetThread(TObject *Sender,
TClientSocketThread *&ClientSocketThread)
{
ClientSocketThread= new TServerThread();
}

改了很久,不知道到底是什么问题。
感谢论坛人的多次帮助,三鞠躬。
...全文
238 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiangmuchen 2013-03-08
  • 打赏
  • 举报
回复
引用 6 楼 ccrun 的回复:
哦,泄特,刚才看看了6.0的帮助,果然是 bool 的参数,这个帮助太坑爹了。17.0(XE3)中已纠正这BUG。幸亏我习惯了只看头文件。
嗯,真的太谢谢妖哥了。
jiangmuchen 2013-03-07
  • 打赏
  • 举报
回复
引用 1 楼 ccrun 的回复:
你的TServerThread类的构造函数,只有 __fastcall TServerThread(bool CreateSuspended); 这一个,所以创建TServerThread实例的时候,需要有一个bool参数。 将 ClientSocketThread = new TServerThread(); 改成: ClientSocketThread =……

/*
版主大人:你说的对,我也试过。主要是第一个问题,老过不去,影响了后面的那个。
*/
ccrun.com 2013-03-07
  • 打赏
  • 举报
回复
你的TServerThread类的构造函数,只有 __fastcall TServerThread(bool CreateSuspended); 这一个,所以创建TServerThread实例的时候,需要有一个bool参数。 将 ClientSocketThread = new TServerThread(); 改成: ClientSocketThread = new TServerThread(true); // 或false
ccrun.com 2013-03-07
  • 打赏
  • 举报
回复
哦,泄特,刚才看看了6.0的帮助,果然是 bool 的参数,这个帮助太坑爹了。17.0(XE3)中已纠正这BUG。幸亏我习惯了只看头文件。
ccrun.com 2013-03-07
  • 打赏
  • 举报
回复
看不到你发的图,不知道你的帮助是哪里来的。6.0和17.0中,TClientSocketThread类的默认构造函数都是 __fastcall TClientSocketThread(TServerSocketThread* ServerSocketThread)
jiangmuchen 2013-03-07
  • 打赏
  • 举报
回复
非常感谢妖哥的帮助,经过您的指导,终于解决了这个问题。程序也调通了。
不过心中还是有意思疑虑:
我用F1查看到的TClientSocketThread的构造函数是这样子的:

__fastcall TClientSocketThread(bool CreateSuspended);


我不知道我的帮助是不是有问题。
ccrun.com 2013-03-07
  • 打赏
  • 举报
回复
TServerThread的父类TClientSocketThread,是VCL自带的一个类,它的构造函数形式为:
__fastcall TClientSocketThread(TServerSocketThread* ServerSocketThread)
你在TServerThread的构造函数中,应该这样:
__fastcall TServerThread::TServerThread(bool CreateSuspended)
        : TClientSocketThread(NULL)
{
//
}

604

社区成员

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

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