visual C++,错误C2448-函数样式初始值设定项似乎是函数定义
visual C++, error C2448 - function-style initializer appears to be a function definition
这个程序应该从用户那里获得两个输入并显示答案。这些是我得到的错误:
(15) :错误C2065:"x":未声明的标识符
(15) :错误C2065:"y":未声明的标识符
(16) :错误C2448:"writeanswer":函数样式初始值设定项似乎是函数定义
(30):错误C3861:"writeanswer":找不到标识符
这是我的代码:
#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
:的类型
void writeanswer( int x , int y )
在writeanswer
的函数声明中,您有
void writeanswer(x, y)
但应该是
void writeanswer(int x, int y)
编译器不知道代码中的x和y是什么类型。它不能暗示主函数中的数据类型,因为它们的作用域仅限于声明它们的主函数。
在包括MATLAB和Python在内的某些语言中,您不需要总是指定数据类型,因为它是在编译/解释时根据您试图将其设置为的值类型隐式排序的。C++不能这样工作。C++在这方面非常严格,您必须在声明时指定每一个数据类型。
第15行错误。你应该用以下方式写:
void writeanswer(int x, int y)
相关文章:
- 不同翻译单元中不可重载的非内联函数定义
- Visual Studio中的函数声明和函数定义问题
- 编写代码时C++出现错误:错误 1 错误 C2601:'circle':本地函数定义是非法的
- 具有enable_if外部类原型的模板类构造函数定义
- 类的前向声明之后的类成员函数定义,在类声明之前
- 为函数定义符号不明确的指针参数
- C++模板专用化 - 无法匹配函数定义
- 错误:在第 6 行'{'标记之前,此处不允许使用函数定义
- 找不到 #define 的函数定义
- 根据类型特征更改函数定义?
- 将抽象基类中的所有纯虚函数定义为 varaidaic 模板
- 命名空间更改函数定义
- "Type&"与C++函数定义中的"Type*"
- C++:为什么允许在另一个函数中声明函数,而不允许在函数定义中声明?
- 如何从 C++ 中的现有模板函数定义新函数
- 私有在函数定义/实现的返回值范围内是什么意思 (c++)?
- 越界成员函数定义是否需要一个完全限定的类名,直到全局范围
- 为什么c++允许成员函数定义中实例的私有成员访问
- Qt基类函数定义
- C++函数定义中参数列表后面额外一对括号的含义