c++中函数重载有关的问题?

一个类中有如下两个函数:
int *getNum() {static int *p1 = new int; *p1 = 100; return p1;}
int *getNum() const {static int *p2 = new int; *p2 = 200; return p2;}
为什么没有报函数同名错误,去掉 const 后会报 不能重载错误。而且执行getNum 函数也只会执行第一个getNum, ?

void print() const {} 和 void print() {} 是重载函数,假如对象为const,则调用void print () const成员函数,如果为非const,则调用void print() ;

int *getNum() const {static int *p2 = new int; *p2 = 200; return p2;} const 的问题

函数名字和返回值,参数都是一样的,则有问题。 需要至少有一个差别。
如果是类的集成,名字一样,子类可以说是重载。