C++,错误C2448函数样式初始化器看起来是函数定义
这个程序应该从用户那里获得两个输入并显示答案。 以下是我得到的错误: 15:错误C2065:“x”:未声明的标识符 15:错误C2065:“y”:未声明的标识符 16:错误C2448:“writeanswer”:函数样式初始值设定项似乎是函数定义 30:错误C3861:“writeanswer”:找不到标识符 这是我的代码:C++,错误C2448函数样式初始化器看起来是函数定义,c++,visual-c++,compiler-errors,C++,Visual C++,Compiler Errors,这个程序应该从用户那里获得两个输入并显示答案。 以下是我得到的错误: 15:错误C2065:“x”:未声明的标识符 15:错误C2065:“y”:未声明的标识符 16:错误C2448:“writeanswer”:函数样式初始值设定项似乎是函数定义 30:错误C3861:“writeanswer”:找不到标识符 这是我的代码: #include "stdafx.h" #include <iostream> using namespace std; int Read
#include "stdafx.h"
#include <iostream>
using namespace std;
int Readnumber()
{
int num;
cin >> num;
return num;
}
void writeanswer(x, y) //THIS IS LINE 15
{ //THIS IS LINE 16
int a;
a = x + y;
cout << "This is the answer: " << a;
}
int main()
{
cout << "Please enter a number: ";
int x = Readnumber();
cout << "Please enter another number: ";
int y = Readnumber();
writeanswer(x, y); //THIS IS LINE 30
system("Pause");
return 0;
}
我认为第30行的错误是导致更多错误的主要问题。我尝试过谷歌,但似乎无法修复它
编辑:我想我已经试过了,我花了一整天的时间在这个问题上!感谢所有的答案。C++是强静态类型,而不是动态类型。您必须写入参数x和y的类型 正如您在函数体中指定局部变量a的类型一样,您必须指定输入参数X和y的类型:
C++是强静态类型,而不是动态类型。您必须写入参数x和y的类型 正如您在函数体中指定局部变量a的类型一样,您必须指定输入参数X和y的类型:
第15行错了。你应该这样写:
void writeanswer(int x, int y)
第15行错了。你应该这样写:
void writeanswer(int x, int y)
在writeanswer的函数声明中,您有
void writeanswer(x, y)
但应该是这样
void writeanswer(int x, int y)
编译器不知道代码中的x和y类型。它不能暗示来自主函数的数据类型,因为它们的作用域仅限于声明它们的主函数
在某些语言中,包括MATLAB和Python,您不需要总是指定数据类型,因为在编译/解释时会根据您试图设置的值类型对其进行隐式排序。C++不这样工作。C++在这方面非常严格,必须在声明时指定每个数据类型。
void writeanswer(x, y)
但应该是这样
void writeanswer(int x, int y)
编译器不知道代码中的x和y类型。它不能暗示来自主函数的数据类型,因为它们的作用域仅限于声明它们的主函数
在某些语言中,包括MATLAB和Python,您不需要总是指定数据类型,因为在编译/解释时会根据您试图设置的值类型对其进行隐式排序。C++不这样工作。C++在这方面非常严格,必须在声明时指定每个数据类型。我对C++是新的,所以我不明白这一点。我是C++新手,所以我不明白这个。