我有一个基类Shape和一些其他派生类Circle,Rectangle等等.
这是我的基类
class Shape {
private:
enum Color {
Red,
Orange,
Yellow,
Green
};
protected:
int X;
int Y;
// etc...
};
Run Code Online (Sandbox Code Playgroud)
这是我的派生类之一
class Rectangle : public Shape {
private:
int Base;
int Height;
string shapeName;
//etc...
};
Run Code Online (Sandbox Code Playgroud)
这就是我调用构造函数的方式:
Rectangle R1(1, 3, 2, 15, "Rectangle 1");
Run Code Online (Sandbox Code Playgroud)
我的构造函数:
Rectangle::Rectangle(int x, int y, int B, int H, const string &Name)
:Shape(x, y)
{
setBase(B);
setHeight(H);
setShapeName(Name);
}
Run Code Online (Sandbox Code Playgroud)
我想在构造函数中添加一个参数,这样我就可以enum Color在我的基类中传递形状的颜色.我怎样才能做到这一点?我也想把颜色打印成一个string.我不知道如何enum在构造函数中用作参数.
任何帮助表示赞赏......
我昨天发布了这个.人们建议我应该Point.h和Point.cpp文件,因为我使用template.我为我的班级创建了单独的文件Point,但我仍然收到错误.
//Point.h
Point(T = 0, T = 0, string = "Deafault Point");
~Point();
T operator-(const Point<T> &);
//Point.cpp
template < typename T >
Point<T>::Point(T x,T y, string name)
:X(x), Y(y), Name(name)
{
}
template < typename T >
Point<T>::~Point()
{
}
template < typename T>
T Point<T>::operator-(const Point<T> &rhs)
{
cout << "\nThe distance between " << getName() << " and "
<< rhs.getName() << " = ";
return sqrt(pow(rhs.getX() - getX(), …Run Code Online (Sandbox Code Playgroud) 我有Mtx在矩阵之间做一些计算
Mtx M1(rows1,cols1,1); //instantiate data members and fill the matrix with 1s
Mtx M2(rows2,cols2,2); //instantiate data members and fill the matrix with 2s
Mtx M3(rows3,cols3,0); //instantiate data members and fill the matrix with 0s
M3 += M1; //+= is overloaded - First M3
M3 -= M2; //-= is overloaded - Second M3
Run Code Online (Sandbox Code Playgroud)
首先M3需要M3的是用零填充,并将其添加到M1和答案将被分配给M3.我这里没问题.
问题出在第二个M3!它不会减去M3用零填充的内容,而是使用前一个操作的结果并从中减去M2.
如何制作M3保持其价值的静态?它是否与静态对象有关?我希望你明白我的意思!
感谢您的帮助......