这个好像不是指针吧?
b = (int)a;一般是在编译的时候进行的。一个简单的方法,你可以尝试下 b = (string)a;如果编译器报错了,那就是编译时进行的。
运行时进行的一般称之为 动态绑定。比如说
class A
{
public:
virtual void print() { printf("I am A"); }
};
class B : public A
{
public:
virtual void print() { printf("I am B"); }
}
int main()
{
A* a = new B; //此处也为运行时确定。编译时,还是按照 A 来查找错误。
a->print();//此处为运行时确定,即动态绑定。
}