c++ - 除了使用表达式之外,我可以访问 C++ 中的对象吗?

标签 c++ expression language-lawyer data-manipulation

根据 C++03 3.10/1 每个表达式要么是左值要么是右值。当我使用 = 为变量分配新值时,分配左侧的变量名称是左值表达式。看起来无论我尝试对变量做什么,它仍然会使用一些表达式。

除了使用表达式之外,还有什么方法可以在 C++ 中操作变量吗?

最佳答案

唯一的方法是通过语句,而不是通过属于此类语句的表达式。一个例子是定义,std::string x;。这将调用 x 上的默认构造函数。但这算作对您的操纵吗?

实际上,没有那么多其他陈述。循环控制语句不能改变对象本身,除非通过循环控制表达式的副作用。 gotobreakcontinue 根本做不到。 throw 是一个表达式,catch() 不能改变任何东西,所以这对也是无关紧要的。我认为没有其他非表达式语句。

关于c++ - 除了使用表达式之外,我可以访问 C++ 中的对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13800405/

相关文章:

c++ - 一元 * 运算符的操作数是否期望纯右值

c++ - 在 nullptr 上调用无状态类的非静态成员函数是否合法?

c++ - 为什么未实例化未调用的模板类成员?

linq - 存储库采用 linq 表达式进行过滤

c# - 如何让 Expression.PropertyOrField 为 child 工作?

c++ - 程序在 Visual Studio 2012 中运行,但不在 ideone.com 中运行

c++ - std::map 的线程安全使用

c++ - 如何从 C++ 访问特定 QML 控件的事件

c++ - 删除行后如何重新索引或修复rowid?sqlite?

c# - 为什么这里要用Expression,为什么不用Function?