gpt4 book ai didi

c++ - 开发 C++ 编译器错误

转载 作者:行者123 更新时间:2023-11-28 03:33:21 25 4
gpt4 key购买 nike

我要编写一个测试程序来测试在上一个问题中设计的类上的各种操作;显示 clockType 重载为成员函数的定义。使用 Dev C++ 编译器编译时出现以下错误。

错误如下:

[link error] undefined reference "WinMain@16'
Id returned 1 exit status

这是我的代码:

#include <iostream>

using namespace std;

class clockType
{
public:
void setTime (int hours, int minutes, int seconds);
void getTime (int& hours, int& minutes, int& seconds) const;
clockType operator++();
bool operator==(const clockType& otherClock) const;
bool operator!= (const clockType& otherClock) const;
bool operator<=(const clockType& otherClock) const;
bool operator<(const clockType& otherClock) const;
bool operator>=(const clockType& otherClock) const;
bool operator>(const clockType& otherClock) const;
clockType ();
clockType (int hours = 0, int minutes = 0, int seconds = 0);
private:
int hr;
int min;
int sec;
};
clockType clockType::operator++()
{
sec++;
if (sec > 59)
{
sec = 0;
min++;
if (min > 59)
{
min = 0;
hr++;
if (hr > 23)
hr = 0;
}
}
return *this;
}
bool clockType::operator==(const clockType& otherClock) const
{
return (hr == otherClock.hr && min == otherClock.min && sec == otherClock.sec);
}
bool clockType::operator<=(const clockType& otherClock) const
{
return ((hr < otherClock.hr) || (hr == otherClock.hr && min < otherClock.min) || (hr == otherClock.hr && min == otherClock.min && sec <= otherClock.sec));
}
bool clockType::operator!=(const clockType& otherClock) const
{
return (hr != otherClock.hr || min != otherClock.min || sec != otherClock.sec);
}
bool clockType::operator<(const clockType& otherClock) const
{
return ((hr < otherClock.hr) || (hr == otherClock.hr && min < otherClock.min) || (hr == otherClock.hr && min == otherClock.min && sec < otherClock.sec));
}
bool clockType::operator>=(const clockType& otherClock) const
{
return ((hr > otherClock.hr) || (hr == otherClock.hr && min > otherClock.min) || (hr == otherClock.hr && min == otherClock.min && sec >= otherClock.sec));
}
bool clockType::operator>(const clockType& otherClock) const
{
return ((hr > otherClock.hr) || (hr == otherClock.hr && min > otherClock.min) || (hr == otherClock.hr && min == otherClock.min && sec > otherClock.sec));
}

void clockType::setTime(int hours, int minutes, int seconds)
{
if (0 <= hours && hours < 24)
hr = hours;
else
hr = 0;
if (0 <= minutes && minutes < 60)
min = minutes;
else
min = 0;
if (0 <= seconds && seconds < 60)
sec = seconds;
else
sec = 0;
}
void clockType::getTime(int& hours, int& minutes, int& seconds)const
{
hours = hr;
minutes = min;
seconds = sec;
}
clockType::clockType(int hours, int minutes, int seconds)
{
setTime(hours, minutes, seconds);
}

如有任何帮助,我们将不胜感激。我不是很擅长编程,而且我也不知道为什么会出现这种类型的错误。到目前为止,我还没有为类编写的其他程序。

最佳答案

绝对有一个名为 Dev-C++ 的 IDE,由 Bloodshed 公司生产,我相信它已经停产,但仍然相当兼容并受到青睐,因为它免费且易于使用且界面漂亮。

至于 OP 的问题,你需要确保你有一个应用程序入口点,在你的项目设置中(我已经多年没有使用 Dev-C++ 所以四处看看),你会发现一些说应用程序类型的东西, 列出的选项将类似于

Console Application
GUI Application or maybe Win32 Application
Static Library
Dynamic Library

这些都是不同类型的应用程序,看起来默认情况下您的程序具有 Win32 Application 设置,在这种情况下,链接器正在寻找 WinMain 但是您没有在您的项目中提供一个,如果您想要一个简单的控制台application 将应用程序类型更改为该设置,这将需要一个简单的 main 函数,Win32 和 Console 的应用程序入口点函数的示例是

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int iShow)
{
return 0;
}

或者对于一个简单的控制台应用程序

int main(int argc, char* argv[])
{
return 0;
}

这些函数是您需要插入应用程序的其余部分以使其执行任何操作的地方,没有这个入口点,您的应用程序甚至无法正确编译和链接。

让您的应用程序实际使用您的类(不使用任何函数)的示例

int main(int argc, char* argv[])
{
clockType myClockType;
myClockType.setTime(12, 30, 45);

return 0;
}

关于c++ - 开发 C++ 编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11918470/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com