C++ 对 class 数据成员的引用
C++ reference to class data member
我最近才发现指向 class 数据成员的指针的存在,例如:
class Car
{
public:
int speed;
};
int main()
{
int Car::*pSpeed = &Car::speed;
return 0;
}
是否也存在对 class 数据成员的引用?如果是这样,声明它们的语法是什么?
不,没有对 class 成员的引用,也没有 "class member" 类型的值。您唯一可以拥有的是指向非静态 class 成员(指向数据成员或成员函数)的指针。
std::is_member_pointer
trait 很好地总结了这一点:指向成员的指针是一种类型 T U::*
,其中 U
是一种 class 类型,而 T
是对象或函数类型。 (与往常一样,没有指向引用的指针。)
我最近才发现指向 class 数据成员的指针的存在,例如:
class Car
{
public:
int speed;
};
int main()
{
int Car::*pSpeed = &Car::speed;
return 0;
}
是否也存在对 class 数据成员的引用?如果是这样,声明它们的语法是什么?
不,没有对 class 成员的引用,也没有 "class member" 类型的值。您唯一可以拥有的是指向非静态 class 成员(指向数据成员或成员函数)的指针。
std::is_member_pointer
trait 很好地总结了这一点:指向成员的指针是一种类型 T U::*
,其中 U
是一种 class 类型,而 T
是对象或函数类型。 (与往常一样,没有指向引用的指针。)