使用"Length"的头文件的 for 循环中的错误 C867
Error C867 Within Header File's For Loop using "Length"
我正在制作一个转换罗马数字并将它们转换为十进制值的程序。我有一个头文件,不断给我以下错误:
错误 C3867 'std::basic_string,std::分配器>::length':非标准语法;使用"&"创建指向成员 RomanChar 的指针
其中"RomanChar"是Visual Studio中项目的名称。由于".length"部分,此错误发生在我创建的 for 循环中。
我尝试查找此问题的解决方案,并且通常问题涉及在成员中添加括号或使用我无法理解的称为gcroot的东西。
#include <iostream>
#include <string>
using namespace std;
class RomanClass { //Define class "RomanClass"
public:
void setValue(int x) {
Value = x;
}
int getValue() {
return Value;
}
void setValue(string s) {
for (int i = int(s.length) - 1; i >= 0; i--) {
if (s[i] == 'M' || 'm') {
Value += 1000;
}
else if (s[i] == 'D' || 'd') {
Value += 500;
}
else if (s[i] == 'C' || 'c') {
Value += 100;
}
else if (s[i] == 'L' || 'l') {
Value += 50;
}
else if (s[i] == 'X' || 'x') {
Value += 10;
}
else if (s[i] == 'V' || 'v') {
Value += 5;
}
else if (s[i] == 'I' || 'i') {
Value += 1;
}
}
}
private:
int Value = 0;
};
s.length
应该s.length()
。长度是一个成员函数。
相关文章:
- 警告处理为错误这里有什么问题
- "error: no matching function for call to"构造函数错误
- boost::进程间消息队列引发错误
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- QT在错误的班级中寻找空位
- vector.resize()中的分配错误
- 代码在main()中运行,但在函数中出现错误
- 释放错误后堆使用
- (C++)分析树以计算返回错误值的简单算术表达式
- Project Euler问题4的错误解决方案
- 我的字符计数代码计算错误.为什么
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 尝试导入pybind-opencv模块时出现libgtk错误
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- 在某些循环内使用vector.push_back时出现分段错误
- MSVC多行宏编译器错误
- 静态数据成员的问题-修复链接错误会导致编译器错误
- 为什么在运行时没有向我们提供有关分段错误的更多信息?
- 使用"Length"的头文件的 for 循环中的错误 C867