|
|
1
6
我相信G++和Comeau是正确的。受保护成员的说明符必须是“access”类型或派生类型,因此我相信代码:
会编译。 我认为这是因为11.5.1:
|
|
2
13
这是正确的。上面引用了标准的相关部分,但这里给出了其价值的理由。
的语义
后一位可能不太明显,因此下面是一个示例:
这是按设计的-想法是
现在回到你的具体问题上来——现在应该已经相当明显了。一旦获得成员函数指针,就可以使用匹配类型的任何接收器调用该指针指向的函数。对于基类的受保护方法,这意味着,如果可以获取类型化为基类(而不是自己的类)的指向它的指针,则可以调用它,将指针传递给与类(或从类派生)不同的类型,从而违反了上面概述的受保护访问规则。因此,不允许您这样做。 |
|
|
3
2
由于对象作为参数传递,因此不能直接访问私有/受保护的函数。 编辑: 已将MyClass更改为对象 |
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |