返回信息流class SocketException
{
public:
enum ErrorCodes { errBadHostName, errNoIPAddress, errDNSError,
errNoProtocolSupport, errKernelMemory, errCannotConvertToIPv4,
errNoDescriptors, errPermissionDenied, errMemory,
errInvalidProtocol, errBadDescriptor, errIllegalPointer,
errAlreadyConnected, errConnectRefused, errConnectTimeOut,
errNetUnreachable, errHostUnreachable, errAddrInUse, errInProgress,
errAlreadyConnecting, errIncorrectAddrFamily, errBrdCastNotEnabled,
errAlreadyBound, errAddressProtected, errCantListen, errNotStreamSock,
errNoPendingConnections, errFirewall, errNotConnected,
errWouldBlock, errInterrupted, errInvalidArgument,
errMessageSizeTooBig, errNotBound, errOptionNotSupported,
errUnknown };
SocketException(ErrorCodes ecType = errUnknown, int iErrNo = 0);
SocketException(const SocketException &cOriginal);
~SocketException();
operator const ErrorCodes() { return ecException; }
operator const char*() { return pcExceptionString; }
private:
ErrorCodes ecException;
char *pcExceptionString;
void SetString(const char *pcErrString);
};
这个类的有两个operator重载
operator const ErrorCodes() { return ecException; }
operator const char*() { return pcExceptionString; }
如何调用啊?
比如
SocketException e;
如何得到‘pcExceptionString’ 这个字符串呢?
这是一条镜像帖。来源:北邮人论坛 / cpp / #19499同步于 2009/2/25
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
一个令人费解的operator重载,如何调用呢?
zieckey
2009/2/25镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
自问自答:
调用方法:
const char * s = (const char*)e;
printf("SocketException:%s\n", s);
【 在 zieckey 的大作中提到: 】
: class SocketException
: {
: public:
: ...................
呵呵
【 在 zieckey (他们都叫我小宝*单车旋风族之霄寒风) 的大作中提到: 】
: 自问自答:
: 调用方法:
: const char * s = (const char*)e;
: ...................
operator const char*() { return pcExceptionString; }
这个怎么成重载了呢?
明明是类型转换么……
受教了。。。谢谢ls两位
【 在 zieckey 的大作中提到: 】
: class SocketException
: {
: public:
: ...................