#include<iostream>
using namespace std;
template<class T>
class Point
{
public:
T x, y;
Point(T a, T b) :x(a),y(b){}
};
template<class T>
class Square : public Point<T>
{
public:
T a;
Square(T a,T b,T aa):Point(a,b),a(aa) {}
};
template<class T>
class Circle :public Point<T>
{
public:
T r;
Circle(T a, T b, T aa) :Point(a, b), r(aa) {}
};
template<class T>
class Solve :public Square<T>, public Circle<T>
{
public:
void solve()
{
const T dis = Square::a / 2 + Circle::r;
const T dx = abs(Square::x - Circle::x);
const T dy = abs(Square::y - Circle::y);
if (dis < dx && dis < dy)
cout << "hh";
else
cout << "qq";
}
public:
Solve(T x1,T y1,T x2,T y2,T a,T r) : Square(x1,y1,a), Circle(x2,y2,r) {}
};
int main()
{
double x1, y1, x2, y2, a, r;
cin >> x1 >> y1 >> x2 >> y2 >> a >> r;
Solve<double> s(x1, y1, x2, y2, a, r);
}
Circle Square都是Point的派生类,Solve继承于Circle Square,在调用他们的构造函数出错,报错为非法成员初始化,请问是什么原因?