如何在C++中克服此 C4430 编译器错误?

How can I get past this C4430 Compiler Error in C++?

本文关键字:C4430 编译器 错误 克服 C++      更新时间:2023-10-16

我对编码场景非常陌生,对C++编码更是如此。 我目前正在为我的类构建一个侧程序,因为它是强烈推荐的,但我似乎无法编译它。 我不断收到 C4430 错误(缺少类型说明符 - 假设为 int(。 我在我的阅读材料中也没有看到这样的东西,所以我想我会在这里寻求帮助,因为第二双眼睛总是一个好主意。 如果很重要,我正在使用Visual Studio 2019社区版进行编码Microsoft。 我还在学习,但我现在也习惯了用 Java 编码,所以我不知所措。

该程序本身是我用Java编写的程序,我已经适应了C++使用。 这是一个非常基本的工资计算程序,可以吐出每周、每月和每年的工资,同时还考虑税收。 最初,它在 Java 中包含扫描仪实用程序,但我还没有在 C++ 中看到类似的东西。 理想情况下,它会毫无问题地吐出这些信息。
我尝试在代码末尾添加return 0;,但我仍然得到 C4430。 我还将我的main重新归类为double而不是int,但无济于事。

我在下面包含了我的代码:

#include <iostream>
double salaryCalculator; main ()
{
double hourlyWage = 15.00;
int hoursWorkedWeek = 40;
double weeklyWage = 0.0;
double monthlyWage = 0.0;
double annualWage = 0.0;
double overtimeHours = 3.0;
double overtimeMulti = 1.5;
double overtimeHourlyWage = 0.0;
double overtimeTotalWage = 0.0;
overtimeHourlyWage = hourlyWage * overtimeMulti;
overtimeTotalWage = overtimeHourlyWage * overtimeHours;
std::cout << "You have /n" << overtimeHours << "hours of overtime at a rate of " << overtimeHourlyWage << "an hour, for a total of " << overtimeTotalWage;
weeklyWage = overtimeTotalWage + (hoursWorkedWeek * hourlyWage);
std::cout << "Your weekly wage is: /n" << weeklyWage;
monthlyWage = weeklyWage * 4;
std::cout << "Your monthly wage is: /n" << monthlyWage;
annualWage = weeklyWage * 52;
std::cout << "Your annual wage before taxes is: /n" << annualWage;
enum class TaxDeductions;
{
};
double incomeTax = 0.11;
double stateTax = 0.04;
double socialSecurityTax = 0.062;
double medicareTax = 0.0145;
double firstWTax = weeklyWage * incomeTax;
double secondWTax = weeklyWage * stateTax;
double thirdWTax = weeklyWage * socialSecurityTax;
double fourthWTax = weeklyWage * medicareTax;
double weeklyTax = firstWTax + secondWTax + thirdWTax + fourthWTax;
double firstMTax = monthlyWage * incomeTax;
double secondMTax = monthlyWage * stateTax;
double thirdMTax = monthlyWage * socialSecurityTax;
double fourthMTax = monthlyWage * medicareTax;
double monthlyTax = firstMTax + secondMTax + thirdMTax + fourthMTax;
double firstATax = annualWage * incomeTax;
double secondATax = annualWage * stateTax;
double thirdATax = annualWage * socialSecurityTax;
double fourthATax = annualWage * medicareTax;
double annualTax = firstATax + secondATax + thirdATax + fourthATax;

double weeklyTakeHome = weeklyWage - weeklyTax;
double monthlyTakehome = monthlyWage - monthlyTax;
double annualTakeHome = annualWage - annualTax;
std::cout << "Your weekly total take home is /n" << weeklyTakeHome;
std::cout << "Your monthly total take home is: /n" << monthlyTakehome;
std::cout << "Your annual total take home is /n" << annualTakeHome;
return 0;
}

谢谢你的时间。

您忘了为入口点 main (( 指定返回类型!

在主

#include <iostream>

double salaryCalculator;

int main() {
//code body..
return 0;
}

如果您暂时删除函数的主体,您将看到以下内容:

double salaryCalculator; main ()
{
}

或者,使用更好的格式:

double salaryCalculator;  // variable declaration
main () // function definition
{
}

但是您尚未指定返回类型main,因此它默认为int,编译器会警告您。

为了取悦编译器,请显式指定返回类型:

int main(void) {
// code here
}