gpt4 book ai didi

c++ - 由于标准,指向基数据成员的指针类型

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:11:02 25 4
gpt4 key购买 nike

&Derived::member 表达式的类型不是 int Derived::*,而是 int Base::*(与g++5) :

#include <iostream>
#include <typeinfo>

struct Base { int member ; } ;
struct Derived : Base {} ;

int main ( )
{
std::cerr << typeid( &Derived::member ).name() ;
return 0 ;
}

根据标准,这是预期的行为吗?找不到任何东西,可以澄清这个例子。

至少有 t w o类似的问题,但没有一个需要回答。

最佳答案

g++ 是对的。

来自 C++11 标准:

5.3.1 Unary operators

3 The result of the unary & operator is a pointer to its operand.

...

 struct A { int i; };
struct B : A { };
... &B::i ... // has type int A::*

关于c++ - 由于标准,指向基数据成员的指针类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41538954/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com