我用C ++编程了一段时间,我觉得尝试从Visual C ++开始编写计算器会很有趣。
好的,所以我设计了一个简单的窗口,有两个文本框,还有一个按钮将两个框一起添加。 我知道我不需要这个功能,但我喜欢尝试一下,学习它们。 因此,当我在设计视图中时,我双击按钮,以获取其代码。 在代码的开头,我创建了两个变量,并为它们分配了一个值。 现在我想调用一个带有两个参数的函数并返回添加的值。 这是令人讨厌的地方,因为我收到了这个错误:
error C3861: 'addFunction': identifier not found
我还有另一个问题。 我有一个if()来确保两个文本框都有一个值。 if是这样的:
if(a && b)
编译器给出了这个错误:
error C2676: binary '&&' : 'std::string' does not define this operator or a conversion to a type acceptable to the predefined operator
是的,其中一个变量是字符串,但它应该仍然有效,对吗?
我可以帮助我!
修改 我已经解决了这两个问题,但现在,有些问题已经解决了。
一个错误是抱怨这个:
textstring = DecryptedBox->Text;
还有另一个错误,在编译器日志中出现了10次
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xstring(707): could be 'std::basic_string<_Elem,_Traits,_Ax> &std::basic_string<_Elem,_Traits,_Ax>::operator =(std::basic_string<_Elem,_Traits,_Ax> &&)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>,
1> _Ax=std::allocator<char>
1> ]
这是什么意思?
答案 0 :(得分:1)
您不能使用&&
的字符串。这是一个逻辑运算符。参数必须转换为布尔值。你可以尝试:
if((a != "") && (b != ""))
假设a和b是字符串初始化为空字符串。
对于您的addFunction
问题,没有足够的详细信息......
MY2C
答案 1 :(得分:1)
好像你没有定义“addFunction”。你可能拼错了。
要检查字符串是否为空,只需检查其大小是否为&gt;所以你的代码应该成为:
if(a.size() && b.size())
答案 2 :(得分:1)
我正在把弦a&amp;&amp;&amp; b都是字符串值。所以你应该做类似
的事情if(a.empty() || b.empty())
std::cout << "Values don't exist in one of the boxes" << std::endl;
未找到addFunction标识符意味着编译器无法找到addFunction函数。你宣布了吗?是在另一个班级,你没有做包括吗?
答案 3 :(得分:1)
对于if(a && b)
语句中的错误,您可能错误地认为a
和b
是c风格char *
,并且您正在尝试检查它们是NULL
。但是,现实似乎是a
和b
是类std::string
的对象,它们不能转换为布尔值。您可以使用std::string
成员函数检查empty()
是否为空。或者您检查它是否等于""
。
对于未定义的函数错误,请检查您是否包含定义函数的标题,以及您是否具有正确的命名空间。