通过创建一个决定使用哪种产品来互换使用Sleep和usleep
Using sleep and usleep interchangeably by creating a class that decides which one to use
我将如何在标题文件中实现睡眠和usleep。这是我到目前为止尝试过的方法,但它不起作用。我还没有精通C 。我知道可以通过发表评论和每个浏览器使用特定的代码来在HTML中执行类似的操作。
这是我正在练习的样本:
help.cpp
#include <iostream>
#include "pause.h"
using namespace std;
int main() {
pause p;
cout << "Hello";
p.pause(5000)
cout << " World";
}
建议使用#ifdef #else #endif在Windows和Linux/unix 之间工作的另一个线程中的某人
暂停
#ifdef _WIN32
#include <windows.h>
class pause
{
public:
void pause(unsigned milliseconds)
{
Sleep(milliseconds);
}
};
#else
#include <unistd.h>
class pause
{
public:
void pause(unsigned milliseconds)
{
usleep(milliseconds * 1000); // takes microseconds
}
};
#endif
不知何故,我必须错误地编写类,因为运行我的.cpp文件,它没有识别我尝试过创建的类或对象。
错误
Running /home/ubuntu/workspace/help.cpp
In file included from /home/ubuntu/workspace/help.cpp:2:0:
/home/ubuntu/workspace/pause.h:20:41: error: return type specification for constructor invalid
void pause(unsigned milliseconds)
^
/home/ubuntu/workspace/help.cpp: In function ‘int main()’:
/home/ubuntu/workspace/help.cpp:9:7: error: expected ‘;’ before ‘p’
pause p;
^
/home/ubuntu/workspace/help.cpp:13:1: error: ‘p’ was not declared in this scope
p.pause(5000)
^
/home/ubuntu/workspace/help.cpp:15:1: error: expected ‘;’ before ‘cout’
cout << " World";
^
Process exited with code: 1
您的成员函数不能与类同一名称。pause
是类名称,因此编译器将您的pause
功能(pause::pause
)视为构造函数。
您可以重命名为Pause
,然后p.pause
将调用有效的Pause::pause
函数。
好吧,我现在不在Windows计算机附近,但是看来您误解了一些类符号。您为什么用参数实现了构造函数pause::pause
,但请勿致电?为什么您要调用不存在的成员函数pause::pause
,更不用说它的名称与class pause
一样?你让他们感到困惑。
让我简化情况以说明这一点,让您看看。如果要打印号码,请通过
设置PrintNumber
类test.cpp:
#include <iostream>
#include "print-num.h"
int main(void)
{
PrintNumber pr;
pr.printMe(5000);
}
print-num.h:
#ifndef _PRINTNUM_
#define _PRINTNUM_
#include <iostream>
class PrintNumber
{
public:
explicit PrintNumber(){};
~PrintNumber(){};
void printMe(unsigned num) { std::cout << num << "n"; }
};
#endif
这将继续。
用您的Sleep()
替换我的打印号码,然后重试?您可以使用构造函数Pause::Pause(void)
和成员函数Pause::sleepNow(unsigned)
或类似的成员函数命名Pause
。
相关文章:
- C ++ usleep 在 Linux 上立即返回
- 如何互换使用字符* 和 std::string?
- 睡眠:(睡眠或usleep)并没有将我的线程中的所有内容悬挂在Linux中,而是在Windows中悬挂吗?为什么
- 生成的代码 - usleep vs std::this_thread::sleep_for
- 使用max_heap和min_heap互换
- 可以在模板专业化中互换使用类和结构
- 将数据存储在具有可互换 x/y 坐标的 2D 矩阵中
- usleep vs std::this_thread::sleep_for,当在 Linux 串行端口上写入/读取时
- 通过将张量互换的特征张量收缩中的张量来引起不同的结果
- 可互换使用的类型和非类型模板参数
- 易于运动,编程互换,C
- 我如何用usleep()设置背景
- 实施互换功能持续复杂性
- 非类型模板参数的占位符类型在模板模板参数的情况下是否可以互换
- 通过创建一个决定使用哪种产品来互换使用Sleep和usleep
- 我们可以互换控制台和 Win32 C++ 的命令和功能吗?
- 将类互换使用浮动指针
- EXIF和XMP之间有什么关系?它们可以互换吗?
- OPENCV矩形高度和宽度保持互换
- 为什么结构的typedef名称不能与结构名称互换使用