在静态const成员数组中键入将char强制转换为字符串的类型
type casting char to string in static const member array
对于c++,使用visual studio命令提示符(2010)作为编译器,使用notepad++作为编辑器
我遇到了一个特定的问题,我似乎在搜索中找不到我想要的答案,所以这里是:
关于有一些约束的程序分配(我不能使用不同的变量)
我有一个类Card,在我的不可接触头文件中有一个名为"faceName"的静态常量成员数组
我正在用赋值运算符和字符串文字列表初始化实现文件中的这个成员数组
我想用字符ascii代码3、4、5和6来表示实际的符号,而不是用无聊的文字"黑桃"answers"红心"等来表示套装名称
我不知道如何将我的char变量类型转换成字符串可以读取的内容,然后在一行中将它们加载到字符串中(因为常量以后不能修改,而且我实际上不能在main中创建char,必须在实现文件中松散地浮动。
我编程已经好几年了,如果我说错了什么,我很抱歉我的词汇使用不好
Card.h
class Card
{
private:
int face;
int suit;
static const int NUM_OF_SUITS = 4;
static const int FACES_PER_SUIT = 13;
static const string suitName[NUM_OF_SUITS];
static const string faceName[FACES_PER_SUIT];
public:
string toString() const;
}
Card.cpp
const string Card::faceName[] = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A"}
const string Card::suitName[] = {(char)3, (char)4, (char)5, (char)6}
string Card::toString() const
{
string nameOfCard;
if (suit >= 0 && suit <= NUM_OF_SUITS && face >= 0 && face <= FACES_PER_SUIT)
{
nameOfCard = faceName[face] + " of " + suitName[suit];
}
else nameOfCard = "Error, card type doesn't exist.";
return nameOfCard;
}
和我的错误:card.cpp(14):错误C2440:"initializing":无法从"char"转换为"const std::string"没有构造函数可以采用源类型,或者构造函数重载解析不明确
我不能简单地创建一个sstream来进行转换,因为我在哪里可以这样做?总之,太晚了,我需要初始化实现文件中的成员数组。
谢谢你的帮助!
我想你想要这个:
const string Card::suitName[] = {" 3", " 4", " 5", " 6"};
但我不确定这是个好主意,因为你试图使用的这些ASCII码不是可打印的字符,所以当你将它们打印到屏幕上时,它将如何工作?
相关文章:
- wcstombs_s(),转换字符串的长度
- 使用 CStringW/CStringA 和 CT2W/CT2A 转换字符串有什么区别?
- 无法转换字符串插入函数的参数
- 转换字符串向量:基于先前的值跳过元素
- 从中间器转换字符串不起作用,出了什么问题?
- 失败的证明转换字符串到枚举类
- 如何使用正则表达式和提升转换迭代器标记和转换 c 字符串
- 使用java jni时转换字符串类型
- 如何避免在转换字符串令牌流时重复istringstream构造
- 阿托伊未正确转换字符串
- C++,转换字符串,使连续下划线序列变为单个下划线
- 使用长算术转换字符串
- 转换字符串十进制数时的精度
- 将词法转换字符串提升为双精度
- 使用marshal_as函数转换字符串的性能
- C++不会从数据转换字符串
- 无论如何,在c++ /Qt中转换字符串到结构中的字段
- C++ 隐式类型转换字符串 -> int?
- 转换字符串到浮点数,c++实现
- 用于转换字符串大小写的函数