我正在为下一个问题寻找一种"其意图完成的方式"解决方案:
我有一个名为的类InputChecker
,它接受一个输入文件,检查它的内容,如果一切正常,则将文件返回到下一个class(ExpofitAgent
)以进行进一步的操作.
但是,如果文件不是应该的形式,则InputChecker
生成一条错误消息,指出错误发现在文件的哪一行.
InputChecker
不会打印错误,它只会生成稍后打印的消息.
因为我在python中这样做,我的方法可以返回一个文件或一个字符串.如何在不需要添加额外标志的情况下检查文件是否正常?
我有一个以下的情况.
Socket
主for
循环中创建了2个对象(原始问题有1000个对象).在创建时,start()
调用该方法.start()
创建一个QTcpSocket
尝试连接到某个主机的.Socket
有插槽connected()
从QTcpSocket 捕获信号并打印一些调试输出所发生的事情是按时间顺序首先Socket
创建所有对象,然后启动套接字.以下是调试选项的示例输出:
1. Created Socket object 1
2. Invoked Socket object 1 start()
3. Created Socket object 2
4. Invoked Socket object 2 start()
5. Socket object 1 TcpSocket Connected
6. Socket object 2 TcpSocket Connected
Run Code Online (Sandbox Code Playgroud)
码:
//main.cpp
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
for (int i=0; i<10; i++)
{
Socket *socket = new Socket();
qDebug() << "Socket …
Run Code Online (Sandbox Code Playgroud) 我有以下情况.这是该课程的精简版.我在Qt创建者中运行它并在真实场景中使用Qt.
class MyClass
{
public:
MyClass();
static MyClass *instance;
static void myMethod(int a, int b);
int name;
};
MyClass *MyClass::instance = 0;
MyClass::MyClass(){
if (instance)
exit(-1);
instance = this;
}
void MyClass::myMethod(int a, int b){
if(instance->name == a) qDebug() << "hello";
}
int main(int argc, char *argv[])
{
MyClass cls;
cls.myMethod(1,2);
}
Run Code Online (Sandbox Code Playgroud)
我试图通过调试myMethod
器进入调试.当我输入方法时,只有a 1
和b 2
在手表中可见,并且没有参考this
或instance
.
更新
答案说明静态方法没有绑定到对象,这就是没有this
可用的原因.
在这个实现中,instance
一旦我进入,静态方法访问调试器中我想要提供的内容myMethod
.
我如何使其可用/可见?
获得最大值和最小值之间距离的最简洁方法是什么?
例
max = 1 min = -1 -> dist = 2
max = 2 min = 1 -> dist = 1
max = -1 min = -2 -> dist = 1
Run Code Online (Sandbox Code Playgroud) python ×2
c++ ×1
debugging ×1
distance ×1
event-loop ×1
exception ×1
gdb ×1
numpy ×1
qt ×1
qt-signals ×1