是关于c++继承构造函数方面的
(非要我水一下,为啥正文要大于三十字符)
试试。
3.
enum StatusType {ON, OFF};
class Pixel : public Point
{
public:
Pixel(int initX, int initY, StatusType initStatus);
StatusType CurrentStatus() const;
private:
StatusType status;
};
4.
Pixel onePixel(3, 8, OFF);
5.
Pixel somePixel(3, 8, OFF);
std::cout << "X: " << somePixel.X_Coord() << std::endl;
std::cout << "Y: " << somePixel.Y_Coord() << std::endl;
std::cout << "Status: " << somePixel.CurrentStatus() << std::endl;
6.
Pixel::Pixel(int initX, int initY, StatusType initStatus)
: Point(initX, initY), status(initStatus)
{
}
StatusType Pixel::CurrentStatus() const
{
return status;
}
7.
Point startPoint;
Point endPoint;
8.
Line::Line(int startX, int startY, int endX, int endY)
: startPoint(startX, startY), endPoint(endX, endY)
{
}
完整测试程序如下:
#include <iostream>
//----------------------------------------------------------------------
// class Point
//----------------------------------------------------------------------
class Point
{
public:
Point(int initX, int initY) {
x = initX;
y = initY;
}
int X_Coord() const {
return x;
}
int Y_Coord() const {
return y;
}
private:
int x;
int y;
};
//----------------------------------------------------------------------
// class Pixel
//----------------------------------------------------------------------
enum StatusType { ON, OFF };
class Pixel : public Point
{
public:
Pixel(int initX, int initY, StatusType initStatus);
StatusType CurrentStatus() const;
private:
StatusType status;
};
Pixel::Pixel(int initX, int initY, StatusType initStatus)
: Point(initX, initY), status(initStatus)
{
}
StatusType Pixel::CurrentStatus() const
{
return status;
}
//----------------------------------------------------------------------
// class Line
//----------------------------------------------------------------------
class Line {
public:
Line(int startX, int startY, int endX, int endY)
: startPoint(startX, startY), endPoint(endX, endY) {}
Point StartingPoint() const { return startPoint; }
Point EndingPoint() const { return endPoint; }
private:
Point startPoint;
Point endPoint;
};
//----------------------------------------------------------------------
// test case
//----------------------------------------------------------------------
int main()
{
//第4题
Pixel onePixel(3, 8, OFF);
//第5题
Pixel somePixel(3, 8, OFF);
std::cout << "X: " << somePixel.X_Coord() << std::endl;
std::cout << "Y: " << somePixel.Y_Coord() << std::endl;
std::cout << "Status: " << somePixel.CurrentStatus() << std::endl;
return 0;
}
不能翻译一下么
#include <iostream>
enum StatusType { ON, OFF };
class Point {
public:
Point(int initX, int initY) : x(initX), y(initY) {}
int X_Coord() const { return x; }
int Y_Coord() const { return y; }
private:
int x;
int y;
};
class Pixel : public Point {
public:
Pixel(int initX, int initY, StatusType initStatus)
: Point(initX, initY), status(initStatus) {}
StatusType CurrentStatus() const { return status; }
private:
StatusType status;
};
class Line {
public:
Line(int startX, int startY, int endX, int endY)
: startPoint(startX, startY), endPoint(endX, endY) {}
Point StartingPoint() const { return startPoint; }
Point EndingPoint() const { return endPoint; }
private:
Point startPoint;
Point endPoint;
};
int main() {
Pixel onePixel(3, 8, OFF);
std::cout << "x=" << onePixel.X_Coord() << ", y=" << onePixel.Y_Coord()
<< ", status=" << onePixel.CurrentStatus() << std::endl;
return 0;
}