分词器 - 预期聚合对象使用"{...}"进行初始化
Tokenizer - Initialization with '{...}' expected for aggregate object
我正在创建一个程序,该程序将使用一个分数并将其降到最低项。我使用一个标记器来解析字符串(在我的例子中,我读取的是字符串),并将分子和分母分离。
我得到了以下错误,正在寻找原因的解释。我查找过有类似问题的人,但我仍然是一个初学者,正在寻找一个基本的解释和建议,以找到解决问题的替代方法
RationalNum() // Default
:numerator(0), denominator(1){}
RationalNum(int num) // Whole Number
:numerator(num), denominator(1){}
RationalNum(int num, int denom) // Fractional Number
:numerator(num), denominator(denom){}
RationalNum(string s)
{
int num = 0;
char str[] = s;
}
我知道问题在于将char数组设置为s。
谢谢你花时间看这个。
您正试图将一个char数组初始化为std::string,这是一个对象。这个错误的字面意思是编译器期望的初始化看起来像这样:
char str[] = {'1','2','3','4'};
然而,由于您无论如何都在计划字符串操作,因此只保留字符串对象比将其分配给char数组要容易得多。
您可以使用字符串流和getline,而不是从头开始构建解析器。使用"/"作为分隔符。您可以在构造std::字符串流时将其作为参数传递,从而用字符串初始化它。您还可以使用另一个字符串流,通过使用>>运算符将字符串转换为数字。
相关文章:
- C++使用整数的压缩数组初始化对象
- 如何使用cudaMallocManaged在指针位置初始化对象?(C++)
- 在 c++ 中初始化对象
- C++ 手动分配和初始化对象
- 使用运算符"="在C++中用值初始化对象
- 当我不需要数据库中的所有值时,如何部分初始化 c++ 对象?
- 如何初始化对象数组?
- 在C++中使用默认构造函数初始化对象的不同方法
- 使用默认构造函数初始化对象的不同方法
- 是否可以在编译时初始化对象的 C 样式函数指针,以便它调用对象的成员函数?
- 如何在线程中初始化对象,然后在其他地方使用它?
- 在没有默认构造函数时使用垃圾数据初始化对象
- 如果在 C++ 构造函数中以错误的顺序初始化对象数据,会发生什么类型的错误
- 初始化对象以在 C++08 中作为参数传递的首选语法是什么?
- 在 c++ 中复制对未初始化对象的引用
- 在成员变量在另一个文件中发生更改后,调用与初始化对象分开的函数
- 在不放置新运算符的情况下,在预分配的内存上使用虚函数初始化对象 - 这可能吗?如果没有,为什么
- 复制 CTOR 与赋值运算符以初始化对象(性能)
- 当您通过分配初始化C 对象时会发生什么
- 获取未初始化对象成员的地址是否定义良好?