关于c++(表达式必须是可修改的左值)

问题描述

关于c++(表达式必须是可修改的左值)

代码如下,在一个类里定义了如下private型成员变量和成员函数,但是在成员函数里给vals赋值时会提示表达式必须是可修改的左值,请问是为什么呢?
private:
char vals[3000];
int numDigits;
BigInt multDigit(char digit) const
{
int temp;
vals = digit;
}

解决方案

caozhy的回答是正确的。
补充一点:
vals是数组名,digit是字符变量,不能直接赋值。
可根据功能修改,例如:
vals[0]=digit;

解决方案二:

BigInt multDigit(char digit) const
这里用const修饰这个函数,那么在函数内不能修改成员函数,除非你把const去掉。

解决方案三:

vals 是数组名,它是常量指针,其数值是不能修改的。

时间: 2024-08-31 18:27:55

关于c++(表达式必须是可修改的左值)的相关文章

c++表达式必须是可修改的左值

问题描述 c++表达式必须是可修改的左值 是public变量 为什么不能修改? 解决方案 filename是字符数组名,数组名是常量,不可以修改 解决方案二: node->getdata()=num; int Node::getdata() { return data; } num无法赋值啊!一般都是该类内函数的问题 改为node->setdata(num) void Node::setdata(int n) { data = n; }......答案就在这里:error:表达式是必须修改的左

c语言-C语言字符是左值 为什么可修改

问题描述 C语言字符是左值 为什么可修改 #include using namespace std; int main() { char c[6] = "hello"; c = "s"; //为什么c是不可被修改的左值 c[2] = 's'; //而c中的元素都可以被修改? return 0; } 解决方案 数组名是常量型指针,即 const ,当然不能修改:这个与 const 型常量是一样的,定义了就不能修改. c 中的元素,是编译器在堆栈上分配的一块内存,当然可

弹出框-jqgrid配合自己写的修改的方法,修改的的值始终是修改之前的,该怎么设置?

问题描述 jqgrid配合自己写的修改的方法,修改的的值始终是修改之前的,该怎么设置? function update(){ var triggerName =$("#tableList").getGridParam("selrow"); var rowData = $("#tableList").jqGrid("getRowData",triggerName); $("#txtTriggerName").

MySQL修改字段默认值

环境 MySQL 5.1 + 命令行工具 问题 MySQL修改字段默认值 解决 alter table topic alter column cateId set default '2'; 语法总结 alter table表名alter column字段名drop default; (若本身存在默认值,则先删除) alter table表名 alter column 字段名 set default默认值;(若本身不存在则可以直接设定) 查看本栏目更多精彩内容:http://www.biancen

Domino下通过代理公式批量修改用户属性值

Domino下通过代理公式批量修改用户属性值---勾选强制用户在下次登陆时更改Internet口令选项 我们大家都知道目前在windows下最常用的两套邮件系统是Mircrosoft Exchange和IBM Lotus,Microsoft Exchange使用起来比较方便,管理也比较方便,我们都知道Microsoft Exchange是跟域集成的,以至邮箱账户信息跟域账户登陆验证信息也就统一了;而IBM Lotus就不一样了,跟域不集成,如果在域环境下部署,会有产生两套信息系统,域账户跟邮箱账

javascript动态修改Li节点值的方法

 这篇文章主要介绍了javascript动态修改Li节点值的方法,涉及针对li节点的操作技巧,非常具有实用价值,需要的朋友可以参考下     本文实例讲述了javascript动态修改Li节点值的方法.分享给大家供大家参考.具体实现方法如下:   代码如下: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Cont

界面-extjs修改combo的值,setValue()修改不了

问题描述 extjs修改combo的值,setValue()修改不了 如题.,extjs修改combo的值,setValue()修改不了:我要的是刷新界面就修改combo的值, 解决方案 选中项目还是什么?还是修改里面项目的值? setValue是选中项目,要修改值你要获取store后修改store里面的记录var store=cb.getStore();var r=store.getAt(0)//获取第一条记录,或者store.getById(记录id值)或者指定记录r.set('列名称''新

j2ee-js修改input hidden值的问题

问题描述 js修改input hidden值的问题 我是在提交表单的时候修改的 < input type="hidden" name="code1" id="hiddeninput" value=""> < input type="submit" onclick="return submitcheck()"> js代码 function submitcheck()

修改UIView的默认Layer后,修改View的值会动态修改Layer的值

修改UIView的默认Layer后,修改View的值会动态修改Layer的值 效果图: 如上图所示,当我们修改了一个UIView的子类中的Layer内置类型时(如上图中我们将CALayer直接替换成了CAGradientLayer类),会直接作用到其内置的Layer当中. 我们可以用这个特性将Layer封装到View当中,然后直接修改view就能达到我们想要实现的目的. 源码: // // AlphaView.h // YXMWeather // // Created by XianMingYo