- 主题:c++ 定义变量语法,这个很少见
这是一个冷门的语法。
A B::* p;
这是声明一个“成员变量指针”。这个指针可以指向B里的A类型成员变量。
【 在 skysee 的大作中提到: 】
: class A {
: int x;
: };
: ...................
--
FROM 76.126.252.*
啥叫肥指针?
【 在 lambdai 的大作中提到: 】
: 我都不知道这个指针是不是个肥指针
: :
: - 来自「最水木 for iPhone12,8」
--
FROM 76.126.252.*
我不是编译器专家,但是我感觉上这个不能识别很正常。
一个非常类似的例子:
MyClass* p;
编译器在处理这个声明的时候都不需要知道MyClass类是什么样的,只需要一个前置声明。
【 在 gpmn 的大作中提到: 】
: B里面都没有A类型的成员变量,编译器就不能识别出来吗
:
--
FROM 76.126.252.*
我也没用过这个功能,所以给不出评价。
【 在 ilovecpp 的大作中提到: 】
: 我从来没见人用过。类里面要真有那么多同类型成员变量,需要选择的话,为什么不扔数组里呢?
: 猜测就是因为有成员函数指针(好歹还有点用),所以为了无聊的正交原则,就非得有成员变量指针。
: 其实成员函数指针也不是指针,没有指向具体的成员函数,只是虚表的一个下标。它就不该叫指针以及用指针语法。
: ...................
--
FROM 76.126.252.*