双类型赋值错误,C++
double-type Assignment Error, C++
我用我两天前开始使用 C++ 的事实抢占了我的问题。
我收到这个错误:
"a value of type "double (*)()" 不能分配给 "double" 类型的实体
我的相关代码:
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
double getInput()
{
double val1 = 0.00;
// prompts user for a Double value
cin >> "Enter a Double value: " >> val1;
return val1;
}
在 main() 中,我有以下语句,其中等号带有红色下划线并产生上面提供的错误消息。
double var1;
var1 = getInput;
我一定是犯了一个愚蠢的错误,因为这似乎是一项简单的编程任务,但我确实抢先提出了我的问题 ;-) 感谢 any/all 的帮助!
附加信息:
- 使用 Visual Studio 2013 旗舰版
- 这是一个控制台应用程序
您的代码段中存在两个问题:
cin >> "Enter a Double value: " >> val1;
此行不编译运算符>> 没有为 const char* 重载。
这应该更正如下:
cout<<"Enter a Double value: " << std::endl;
cin>>val1;
第二个getInput是一个函数,它的类型是double(),它不同于double类型。因此应在代码段中按如下方式更正作业。
int main()
{
double var1;
var1 = getInput();
std::cout<< var1<<std::endl;
return 0;
}
getInput
是函数名。该名称本身 引用 函数,但它不会 调用 函数。由于在大多数情况下,函数名称会隐式转换为指向函数的指针,因此它会成为 double (*)()
或 "pointer to function (with no parameters) returning double
".
类型的表达式
要调用一个函数,您需要在其名称后跟一个括号中的参数列表。如果没有参数,使用空括号。
改变这个:
var1 = getInput;
对此:
var1 = getInput();
(有些语言的无参数函数调用不使用空括号。C++ 不是其中之一。)
我用我两天前开始使用 C++ 的事实抢占了我的问题。
我收到这个错误: "a value of type "double (*)()" 不能分配给 "double" 类型的实体
我的相关代码:
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
double getInput()
{
double val1 = 0.00;
// prompts user for a Double value
cin >> "Enter a Double value: " >> val1;
return val1;
}
在 main() 中,我有以下语句,其中等号带有红色下划线并产生上面提供的错误消息。
double var1;
var1 = getInput;
我一定是犯了一个愚蠢的错误,因为这似乎是一项简单的编程任务,但我确实抢先提出了我的问题 ;-) 感谢 any/all 的帮助! 附加信息:
- 使用 Visual Studio 2013 旗舰版
- 这是一个控制台应用程序
您的代码段中存在两个问题:
cin >> "Enter a Double value: " >> val1;
此行不编译运算符>> 没有为 const char* 重载。 这应该更正如下:
cout<<"Enter a Double value: " << std::endl;
cin>>val1;
第二个getInput是一个函数,它的类型是double(),它不同于double类型。因此应在代码段中按如下方式更正作业。
int main()
{
double var1;
var1 = getInput();
std::cout<< var1<<std::endl;
return 0;
}
getInput
是函数名。该名称本身 引用 函数,但它不会 调用 函数。由于在大多数情况下,函数名称会隐式转换为指向函数的指针,因此它会成为 double (*)()
或 "pointer to function (with no parameters) returning double
".
要调用一个函数,您需要在其名称后跟一个括号中的参数列表。如果没有参数,使用空括号。
改变这个:
var1 = getInput;
对此:
var1 = getInput();
(有些语言的无参数函数调用不使用空括号。C++ 不是其中之一。)