草庐IT

case-conversion

全部标签

c++ - "Expected constructor, destructor, or type conversion before ' < ' token"

我遇到语法/解析错误,但我似乎找不到它。DataReader.h:11:error:expectedconstructor,destructor,ortypeconversionbefore'这里是DataReader.h:#include#include#include#ifndefDATA_H#defineDATA_H#include"Data.h"#endifvectorDataReader();//Thisisline11,wheretheerroris..这是.cpp文件:#include"DataReader.h"usingnamespacestd;vectorDataRe

c++ - switch case 是循环还是条件结构?

我在一次采访中被问到这个问题。我回答说这是一个条件结构,因为它只执行一次,不像循环可以执行多次。没有循环控制机制,只有根据不同情况进行条件切换。那么我的回答是对还是错,还有更好的答案吗?他还问我为什么break;语句适用于switch-case,因为break;只适用于循环。这个问题我没法回答。 最佳答案 在C++中switch是selection-statementn33766.4/1和6.4.2是关于switchselection-statement:...switch(condition)statementbreak是跳转语句

C++ 编译 "error: expected constructor, destructor, or type conversion before ' =' token "

位于同一文件“foo.h”中的非常简单的代码:classXface{public:uint32_tm_tick;Xface(uint32_ttk){m_tick=tk;}}std::mapm;Xface*tmp;tmp=newXface(100);**//Error**m[1]=tmp;**//Error**tmp=newXface(200);**//Error**m[2]=tmp;**//Error**错误是错误:在“=”标记之前需要构造函数、析构函数或类型转换对于每个任务。 最佳答案 C++不是脚本语言。您可以在可执行代码块的范

c++ - 在 switch case 语句中,它表示 "duplicate case value"作为错误出现。有人知道为什么吗?

我正在编写剪刀石头布程序,但这次计算机有一半的时间选择石头,三分之一的时间选择剪刀,只有六分之一的时间选择布。我这样做的方法是列举了六个可能的计算机选择值:enumchoicec{rock1,rock2,rock3,scissors1,scissors2,paper};choiceccomputer;但是,在计算机做出选择之后,我必须将这些枚举值转换为石头、布或剪刀。我使用switch-case语句完成了此操作:switch(computer){caserock1||rock2||rock3:c=1;break;casescissors1||scissors2://ERROR!c=3;

c++ - 二进制 '==' : no operator found which takes a left-hand operand of type 'std::string' (or there is no acceptable conversion)

我正在编写一个比较std::strings的模板类函数。std::string是模板参数。我的问题是我无法用“==”运算符比较两个const字符串,然后我想我创建了两个非常量临时字符串变量来执行比较,但它仍然无法编译。不知道为什么。类VGraph被实例化为VGraphmyGraph;templatesize_tVGraph::find(constV&vert){Vtemp=vert;//(1)for(size_ti=0;i相关函数原型(prototype)templateconstV&VVertex::getVertex(); 最佳答案

c++ - 为什么我不能在 switch/case 中使用 unsigned short?

我在ClsA中有两个静态成员声明,​​如下所示:classClsA{public:staticunsignedshortm_var1;staticunsignedshortm_var2;};unsignedshortClsA::m_var1=1001;unsignedshortClsA::m_var2=1002;在ClsB中,我像这样使用来自ClsA的静态成员声明:unsignedshortvar1;//assumevar1isdeclare/usesomewhereinthecode.switch(var1){caseClsA::m_var1://Error:cannotappear

c++ - Catch.hpp 单元测试 : How to dynamically create test cases?

我正在使用CATCHv1.1build14对我的C++代码进行单元测试。作为测试的一部分,我想检查代码中几个模块的输出。没有固定数量的模块;可以随时添加更多模块。但是,测试每个模块的代码是相同的。因此,我认为将测试代码放在for循环中是最理想的。事实上,使用catch.hpp,我已经验证了我可以在测试用例中动态创建部分,其中每个部分对应一个模块。我可以通过将SECTION宏包含在for循环中来做到这一点,例如:#include"catch.hpp"#include#include#include"myHeader.h"TEST_CASE("Moduletesting","[module

c++ - 私有(private)转换函数导致 "ambiguous default type conversion"错误 (c++)

首先,一个演示问题的小例子:structBar{enumBaz{aa,bb,cc};Bazbaz_;operatorBaz()const{returnbaz_;}private:templateoperatorT()const;};intmain(){Barbar;switch(bar){caseBar::aa:break;caseBar::bb:break;caseBar::cc:break;default:break;}return0;}使用g++4.7.0编译此代码会出现以下错误:foo.cpp:Infunction‘intmain()’:foo.cpp:12:16:error:

C++ 错误 : Conversion to Execution Character set

问题是我试图在ASCII之外打印一些字符,例如德语变音字符、“ß”等。这些字符不适合普通的char变量,所以显然我试图将它们放在wchar_t中并用L"...."初始化字符串。但是每当这个字符串包含上面的一个字符时,我都会得到提到的错误,但是对于ASCII的所有其他字符都没有问题。u"....",U"......"也会发生这种情况,如果我使用u8"......"它不会产生错误但会打印垃圾。所以问题:如何从ASCII集之外打印这些字符和其他字符?无论如何,这个错误是什么意思?我可以打印字符的唯一方法是调用setlocale()将语言环境设置为环境默认值(德语),然后通过简单地创建一个包含

c++ - 这是什么意思? : note: no known conversion for argument 1 from ‘int’ to ‘const account&’

我试图理解我们通常在C++程序中遇到的错误的含义。在编译程序时我遇到了一个错误(我故意犯了这个错误,请不要告诉我如何更正它)并且存在一个注释:note:noknownconversionforargument1from‘int’to‘constaccount&’我想看懂这张纸条的意思。我的程序是:#includeclassaccount{private:inta_no;public:account(){a_no=0;}voidshowData(){std::cout我知道我还没有定义一个可以接受一个参数的构造函数,这样做会消除我的错误。好的,编译时我得到了:file1.cpp:Infu