c++ 类修饰指针

c++ 类修饰指针

  • 类修饰指针
    • 由类限制修饰指向变量的指针
    • 由类修饰指向函数的指针

类修饰指针

由类限制修饰指向变量的指针

形式:

class B
{
public:
	int value;
	char ch[3];
	int sum;
};
int main()
{
	int B::* bp = nullptr;//bp 只能指向B内中为int的成员变量
	bp = &B::value;
	bp = &B::sum;
	
	return 0;
}

bp只能指向B类被public修饰的且类型为int的成员变量
c++ 类修饰指针_第1张图片

因为bp指向的是偏移量,所以初始化时初始化为0xffffffff
c++ 类修饰指针_第2张图片
value在类中的偏移量为8,所以bp的值为8
c++ 类修饰指针_第3张图片
用法:
c++ 类修饰指针_第4张图片

由类修饰指向函数的指针

用法:
c++ 类修饰指针_第5张图片

p2只能指向B中返回值为void,参数为void(必须有隐含的this指针) 的成员函数

funb为静态函数,参数列表中没有隐藏的this指针,所以会报错。

被类修饰的指向函数的指针初始化为0
c++ 类修饰指针_第6张图片
这种指针指向的不是偏移量,而是具体的函数地址,因为在对于类说,函数只有一份
c++ 类修饰指针_第7张图片

调用的方式
c++ 类修饰指针_第8张图片

你可能感兴趣的:(C++,c++,开发语言)