📅  最后修改于: 2023-12-03 15:41:32.927000             🧑  作者: Mango
在C++中,符号(操作符、关键词等)需要操作对象,这个对象可以是基本类型,也可以是类类型。对于大部分符号,不管操作的是基本类型还是类类型,语言都有明确的规定。但有些符号只能操作类类型,对基本类型使用就会出错,这就是表达式必须具有类类型的原因。
表达式指的是由数、变量、运算符组成的符合语法规则的式子,常常用来计算值。
以下是几个表达式的例子:
x + 1 // 加法表达式
"Hello, " + "world!" // 字符串连接表达式
a < b // 小于号表达式
表达式必须具有类类型的原因是,有些符号只能操作类类型的对象,对于基本类型使用就会出错。例如,成员访问运算符.
和指向成员的运算符->
只能访问类类型的成员,对于基本类型的变量使用就会报错。
以下是一个例子:
int x = 1;
x++; // x自增1,这是正确的
x.++; // 会报错,因为`.`运算符只能操作类类型的对象
因此,在使用.
运算符或->
运算符访问成员时,必须将变量定义为类类型的对象。
class Person {
public:
int age;
};
Person p;
p.age = 25; // 成员访问运算符可以正确操作类类型的对象
表达式需要具有类类型,主要是由于有些符号只能操作类类型的对象。在访问类成员时,必须使用成员访问运算符.
或->
,并将变量定义为类类型的对象。