我\xc2\xb4m是Delphi的新手,我\xc2\xb4m尝试进行一些网络操作。在本例中,我想连接到(让\xc2\xb4s 称之为)通知服务器,该服务器将在发生某些事件时发送字符串。
\n\n我的第一种方法是这样的:\n我在自己的线程上运行 TIdTCPClient 并设置 ReadTimeout,这样我\xc2\xb4m 就不会总是被阻塞。这样我可以检查线程的终止状态。
\n\nConnectionToServer.ReadTimeout := MyTimeOut;\nwhile( Continue ) do\nbegin\n //\n try\n Command := ConnectionToServer.ReadLn( );\n except\n on E: EIdReadTimeout do\n begin\n //AnotarMensaje(odDepurar, 'Timeout ' + E.Message );\n end;\n on E: EIdConnClosedGracefully do\n begin\n AnotarMensaje(odDepurar, 'Conexi\xc3\xb3n cerrada ' + E.Message );\n Continue := false;\n end;\n on E: Exception do\n begin\n AnotarMensaje(odDepurar, 'Error en lectura ' + E.Message );\n Continue := false;\n end;\n end;\n // treat the command\n ExecuteRemoteCommand( Command ); \n if( self.Terminated ) then\n …Run Code Online (Sandbox Code Playgroud) 我试图按照此处显示的内容为对象之间的类型转换做一些示例代码。
这是家长班
// ParentClass.h
class ParentClass {
public:
ParentClass();
virtual ~ParentClass();
};
Run Code Online (Sandbox Code Playgroud)
这只是一些概念证明,它唯一要做的就是打印一些东西
#include <iostream>
#include "ParentClass.h"
ParentClass::ParentClass()
{
std::cout << "Parent\tDefault constructor\n";
}
ParentClass::~ParentClass()
{
std::cout << "Parent\tDestructor\n";
}
Run Code Online (Sandbox Code Playgroud)
然后,派生类
// ChildClass.h
#include "ParentClass.h"
class ChildClass: public ParentClass {
public:
ChildClass();
// conversion constructor
ChildClass( const ParentClass& p );
// conversion from assignment
ChildClass& operator= ( const ParentClass & p );
// type-cast operator
operator ParentClass();
// destructor
virtual ~ChildClass();
};
Run Code Online (Sandbox Code Playgroud)
然后,代码也很愚蠢
// ChildClass.cpp
#include <iostream>
#include …Run Code Online (Sandbox Code Playgroud)