我有这段代码:
#include <iostream>
using namespace std;
struct A;
struct B;
void g(A* a){ cout << "A";}
void g(B* b){ cout << "B";}
struct A{
A(){ g(this); }
};
struct B : A{
B(){}
};
int main() {
B* b=new B();
return 0;
}
输出结果为:
A
这是否意味着传递给构造函数 A()
的 this
指针的类型是 A*
?
A
的成员函数内部,this
的静态类型实际上除了A*
之外别无选择。 - Angew is no longer proud of SO