如何修复函数样式强制转换或类型构造的预期"("?
How do I fix this Expected '(' for function-style cast or type construction?
我正在为类编写代码,但我一直得到一个--函数样式强制转换或类型构造所需的"("--错误,它显示cout<<void enterStolenMoonPies(int*array,int numDays(<lt;endl;但我不知道该怎么修?是我格式化它的方式,还是实际函数有问题?
#include <iostream>
#include "Moonpie.h"
//#include "Functions.cpp"
using namespace std;
int* makeArray(int days);
void enterStolenMoonPies(int* array, int numDays);
int* totalMoonPies(int* array, int numDays);
float averageMoonPies(int numDays, int sum);
int* highestMoonPies(int* array, int numDays);
int* lowestMoonPies(int* array, int numDays);
int main()
{
int days;
cout <<"How many days did Jane steal moon pies?: ";
cin >> days;
cout << "Enter the number of moon pies stolen each day:";
cout << void enterStolenMoonPies(int* array, int numDays) << endl;
cout << "---------Results--------------"<< endl;
cout << "Total number of Moon Pies stolen: ";
int* totalMoonPies(int* array, int numDays);
cout << "Average number of Moon Pies stolen per day: ";
float averageMoonPies(int numDays, int sum);
cout << "Highest amount of Moon Pies stolen in a day: ";
int* highestMoonPies(int* array, int numDays);
cout << "Lowest amount of Moon Pies stolen in a day: ";
int* lowestMoonPies(int* array, int numDays);
}
这是标题:
#ifndef Moonpie_h
#define Moonpie_h
int* makeArray(int days);
void enterStolenMoonPies(int* array, int numDays);
int* totalMoonPies(int* array, int numDays);
float averageMoonPies(int numDays, int sum);
int* highestMoonPies(int* array, int numDays);
int* lowestMoonPies(int* array, int numDays);
#endif /* Moonpie_h */
这是函数文件:
#include <iostream>
//#include "Moonpie.cpp"
using namespace std;
int* makeArray(int days)
{
int* numDays = new int[days];
return numDays;
}
void enterStolenMoonPies(int* array, int numDays)
{
int stolenMP = 0;
for(int i =0; i<numDays; i++)
{
cout << "Enter the number of moon pies stolen each day:" << endl;
cout << "Day " << i << ": ";
cin >> stolenMP;
}
}
int* totalMoonPies(int* array, int numDays)
{
int* sum = 0;
for(int i = 0; i < numDays; i++)
{
sum += array[i];
}
return sum;
}
float averageMoonPies(int numDays, int sum)
{
float average;
average = static_cast<float>(sum)/numDays;
return average;
}
int* highestMoonPies(int* array, int numDays)
{
int* highest;
highest = &array[0];
for(int i = 0; i <= numDays; i++)
if (&array[i] > highest)
highest = &array[i];
return highest;
}
int* lowestMoonPies(int* array, int numDays)
{
int* lowest;
lowest = &array[0];
for(int i = 0; i <= numDays; i++)
if (&array[i] < lowest)
lowest = &array[i];
return lowest;
}
与注释一样,您的代码在很多方面都不正确。您的函数不应该声明两次(头中有一个,源中也有一个(,但这只是众多问题中的一个。
cout << "Enter the number of moon pies stolen each day:";
cout << void enterStolenMoonPies(int* array, int numDays) << endl;
不会起作用。它至少应该是
cout << "Enter the number of moon pies stolen each day:";
cout << enterStolenMoonPies(array, numDays) << endl;
删除main之前的所有函数声明,并包含相应的头文件。
你最好从一个简单的程序重新开始,因为它更复杂,所以不要想太多地使用这些指针。
相关文章:
- ArduinoJson 6.15.2:JsonObject没有命名类型
- 防止主数据类型C++的隐式转换
- 如何修复函数样式强制转换或类型构造的预期"("?
- C++显式类型转换(C 样式强制转换)的强制表示法和static_cast的多种解释
- 枚举类的 C 样式强制转换到基础类型 char 的引用
- 键入特征样式以测试 T 是basic_string<>还是可打印的类似字符串的类型?
- 键入 trait 以获取 std::array 或 C 样式数组的元素类型
- 为什么在初始化项列表中初始化 POD 数据时必须使用 C 样式类型转换
- 对非指针类型使用 static_cast 而不是 C 样式强制转换有什么好处
- 用于函数样式强制转换或类型构造的预期 c++ Xcode '('
- 为什么Qt不应用这个样式表类型选择器?
- 函数样式强制转换或构造类型 Xcode 错误的'('
- 转换为枚举类型需要显式转换(static_cast、C样式转换或函数样式转换)
- 复杂的 C 样式类型转换表达式的工作原理
- 如何修复我的STL样式容器以容纳不完整或抽象类型
- 如何在编译时确认自动推断类型的假设?(即static_assert样式
- Int (Int, Int)样式模板函数类型语法
- 在 C 样式类型转换期间,关于强制转换对象的地址空间的实际情况
- 转换为枚举类型需要显式强制转换(static_cast、C样式强制转换或函数样式强制转换)枚举
- 指向特定类型的容器样式和迭代器(c++)