通过使用模板类,表达式必须是可修改的LVALUE
expression must be a modifiable lvalue by using template class
我有一个模板向量类。这就是其中一部分的样子:
template<class Type>
class Vector
{
public:
Vector(int size)
{
MyTime = new Type[size];
m_size = size;
m_current = -1;
}
void set(int i,Type &data)
{
data[i]=Mytime[i];
}
private:
Type* MyTime;
int m_size;
int m_current;
};
然后,我希望使用上面的设置方法将值设置为字符串"记录"。
for(int i=0 ; i<count ; i++)
{
records.set(i)=dateList.get(i)+timeList3.get(i);
}
,但这给了我两个错误:1.函数调用中的参数太少。2.表达必须是可修改的LVALUE。这两个错误都出现在记录中。
"记录"的声明为:
Vector<string> records(100);
这让我很困惑。我可以知道如何解决吗?
我认为records.set(i)=dateList.get(i)+timeList3.get(i);
应该是这样的:
records.set(i, dateList.get(i) + timeList3.get(i));
函数呼叫中的参数太少。 - 在您的示例中,您仅通过 i
,同时 set
表达式必须是可修改的lvalue - set()
返回void,这不是返回a 修改lvalue 的方法。。
同时,您的vector
类做了一些奇怪的事情。这是一个基本的模板向量类。
template <typename T>
class Vector
{
public:
Vector(int size) : data(new T[size]) {}
void Set(int index, const T& val) { data[index] = val; }
T Get(int index) { return data[index]; }
private:
T* data;
}
相关文章:
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 对RValue对象调用的LValue ref限定成员函数
- 独立读取-修改-写入顺序
- 当系统的卷被修改时,如何修改WASAPI环回捕获卷
- 修改函数中的指针(将另一个指针作为参数传递)
- 为什么我可以通过引用修改常量返回
- 对于结构,表达式必须是可修改的ivalue
- QML:修改在不同QML文件(而非main.QML)中定义的子对象的属性
- 为什么不能修改对象中的值?另外,我如何改进此链表?
- 修改创建帐户程序
- 我应该如何修改此代码以使用给定字符串中的字母打印菱形图案
- 如何从子成员函数修改父公共成员变量
- 修改 VS Code 中的默认C++代码段
- 为什么在我的函数类型后使用引用运算符 (&) 允许我修改它返回的值?
- 如何使用递归打印修改后的星号三角形图案
- C ,表达必须是可修改的LVALUE
- 表达式必须是可修改的lvalue:`(x,y)= 0;`
- 将值分配给指针时:表达式必须是可修改的lvalue
- 错误:表达式必须是可修改的LVALUE
- 通过使用模板类,表达式必须是可修改的LVALUE