问题是静态函数期望返回类型为Shape Shape::*
??并得到一个只是Shape*
。
static Shape Shape::*makeShape(char ch,int posx,int posy){
Shape *rp = new O(posx, posy);
return rp;
}
O::O(int posx, int posy){
x = &posx;
y = &posy;
}
答案 0 :(得分:1)
// return type (marked with v)
// vvvvv v
static Shape Shape::*makeShape
// ^^^^^^^ ^^^^^^^^^
// function name (marked with ^)
您似乎混淆了您的返回类型和您的函数名称。
你的意思可能是
static Shape *Shape::makeShape(...)