📜  表达式在C ++中必须具有类类型错误(1)

📅  最后修改于: 2023-12-03 15:41:32.927000             🧑  作者: Mango

表达式在C++中必须具有类类型错误

在C++中,符号(操作符、关键词等)需要操作对象,这个对象可以是基本类型,也可以是类类型。对于大部分符号,不管操作的是基本类型还是类类型,语言都有明确的规定。但有些符号只能操作类类型,对基本类型使用就会出错,这就是表达式必须具有类类型的原因。

什么是表达式?

表达式指的是由数、变量、运算符组成的符合语法规则的式子,常常用来计算值。

以下是几个表达式的例子:

x + 1                    // 加法表达式
"Hello, " + "world!"     // 字符串连接表达式
a < b                    // 小于号表达式
为什么表达式必须具有类类型?

表达式必须具有类类型的原因是,有些符号只能操作类类型的对象,对于基本类型使用就会出错。例如,成员访问运算符.和指向成员的运算符->只能访问类类型的成员,对于基本类型的变量使用就会报错。

以下是一个例子:

int x = 1;
x++;                    // x自增1,这是正确的
x.++;                   // 会报错,因为`.`运算符只能操作类类型的对象

因此,在使用.运算符或->运算符访问成员时,必须将变量定义为类类型的对象。

class Person {
public:
    int age;
};

Person p;
p.age = 25;             // 成员访问运算符可以正确操作类类型的对象
总结

表达式需要具有类类型,主要是由于有些符号只能操作类类型的对象。在访问类成员时,必须使用成员访问运算符.->,并将变量定义为类类型的对象。