在C++中,非静态成员函数不能直接使用`(*this).x`的方式访问成员变量`x`,而是需要使用`this->x`或者直接使用`x`来访问成员变量。
`this`是一个指向当前对象的指针,在非静态成员函数中隐式地被传递给函数。当你在非静态成员函数内部访问成员变量时,编译器会将`this->`隐式地插入到成员变量的前面,以帮助你指明是当前对象的成员变量。
因此,可以直接使用`x`来访问成员变量。例如,如果有一个成员变量`int x;`,你可以在非静态成员函数中使用`x`来访问它。而使用`(*this).x`的方式是错误的,因为`(*this)`会解引用`this`指针,得到当前对象的引用,而非指针。然后你再尝试使用`.`来访问成员变量`x`,这是非法的,因为`.`操作符只能用于指针或对象上。
总结起来,非静态成员函数中可以直接使用`this->x`或者直接使用`x`来访问成员变量,但不能使用`(*this).x`这样的形式。
摘自chatgpt