Visual C ++函数问题(和其他)

时间:2011-02-08 16:53:39

标签: c++

我用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>          ]

这是什么意思?

4 个答案:

答案 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)语句中的错误,您可能错误地认为ab是c风格char *,并且您正在尝试检查它们是NULL。但是,现实似乎是ab是类std::string的对象,它们不能转换为布尔值。您可以使用std::string成员函数检查empty()是否为空。或者您检查它是否等于""

对于未定义的函数错误,请检查您是否包含定义函数的标题,以及您是否具有正确的命名空间。