• 6238阅读
  • 8回复

[提问]受保护的函数怎么调用readData? [复制链接]

上一主题 下一主题
离线jxhxfen2008
 

只看楼主 倒序阅读 楼主  发表于: 2013-03-17
virtual qint64 QAbstractSocket::readData(char*, qint64)’是保护的







qint64 QAbstractSocket::readData ( char * data, qint64 maxSize ) [virtual protected]


Reimplemented from QIODevice::readData().




qint64 QIODevice::readData ( char * data, qint64 maxSize ) [pure virtual protected]


Reads up to maxSize bytes from the device into data, and returns the number of bytes read or -1 if an error occurred.
If there are no bytes to be read and there can never be more bytes available (examples include socket closed, pipe closed, sub-process finished), this function returns -1.
This function is called by QIODevice. Reimplement this function when creating a subclass ofQIODevice.




我已经建立一个套接字了,tcpClient =new QTcpSocket(this);


为什么不能
tcpClient->readData()




???

离线pxiao_xiao

只看该作者 1楼 发表于: 2013-03-17
protected 修饰的方法 只能在类的方法里调用
兄弟 这是C++的常识
离线pxiao_xiao

只看该作者 2楼 发表于: 2013-03-17
QTcpSockets 打错了......
离线jxhxfen2008

只看该作者 3楼 发表于: 2013-03-17
引用第1楼pxiao_xiao于2013-03-17 10:53发表的  :
protected 修饰的方法 只能在类的方法里调用
兄弟 这是C++的常识

那请问,我如果想用这个函数接受数据怎么办。现在就是用这个函数是最合适的
离线jxhxfen2008

只看该作者 4楼 发表于: 2013-03-17
引用第2楼pxiao_xiao于2013-03-17 10:54发表的  :
QTcpSockets 打错了......

离线pxiao_xiao

只看该作者 5楼 发表于: 2013-03-17
继承QTcpSocket 写个public方法 再调用
为什么要这么干?
离线jxhxfen2008

只看该作者 6楼 发表于: 2013-03-17
引用第5楼pxiao_xiao于2013-03-17 11:22发表的  :
继承QTcpSocket 写个public方法 再调用
为什么要这么干?

public 里边怎么弄呢 难道是return readData()???


因为继承的其他public读的函数不好用,有很多返回值需要顾及,这个少。
离线XChinux

只看该作者 7楼 发表于: 2013-03-17
那就写个QTcpSocket的派生类。自己来处理。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线pxiao_xiao

只看该作者 8楼 发表于: 2013-03-17
没办法 只能公有继承 写公有方法内部调用
快速回复
限100 字节
 
上一个 下一个