C++ (Qt)Circle *crcl = new Circle();crcl->draw(x, y, rad);
C++ (Qt)#ifndef VIEWER_H#define VIEWER_H #include <QGLWidget>#include "shape.h" #include <vector> class Viewer : public QGLWidget{public: // ... void addForPainting(const myShapes::Shape &ps); // ...private: std::vector<myShapes::Shape> shapes; void draw(const myShapes::Shape &ps, int xOffset, int yOffset);}; #endif // VIEWER_H
C++ (Qt)#ifndef SHAPE_H#define SHAPE_H namespace myShapes { class Shape{public: // ...}; } #endif // SHAPE_H
C++ (Qt)#ifndef RECTANGLE_H#define RECTANGLE_H #include "shape.h" namespace myShapes { class Rectangle : public Shape{public: // ...}; } #endif // RECTANGLE_H
C++ (Qt)class Shape : public QObject, public QGraphicsItem{ Q_OBJECT public: Shape (); ~Shape (); QRectF boundingRect() const; void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); ... // и так далее}
C++ (Qt)#include <QCoreApplication>#include <QDebug> // классы для представления геометрических фигурclass Shape {public: enum ShapeColor { Red, Green, Blue }; // все фигуры должны предоставлять функцию для рисования virtual void draw(ShapeColor color = Red) const = 0; // ... virtual ~Shape() { }}; class Rectangle: public Shape {public: // заметьте, другое значение параметра по умолчанию – плохо! virtual void draw(ShapeColor color = Green) const { qDebug() << color; }}; class Circle: public Shape {public: virtual void draw(ShapeColor color) const { qDebug() << color; }}; int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); Shape *pr = new Rectangle; pr->draw(); delete pr; return a.exec();}
C++ (Qt)class Rectangle: public Shape {public: virtual void draw(ShapeColor color) const { qDebug() << color; }};
C++ (Qt)#include <QCoreApplication>#include <QDebug> class Shape {public: enum ShapeColor { Red, Green, Blue }; void draw(ShapeColor color = Red) const // теперь – невиртуальная { doDraw(color); // вызов виртуальной функции } // ...private: virtual void doDraw(ShapeColor color) const = 0; // реальная работа выполняется в этой функции}; class Rectangle: public Shape {public: // ...private: virtual void doDraw(ShapeColor color) const { // обратите внимание на отсутствие у аргумента значения по умолчанию qDebug() << color; }}; int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); Shape *pr = new Rectangle; pr->draw(); delete pr; return a.exec();}
C++ (Qt)const QString & base = obj.filePath1(..);
C++ (Qt)namespace TriangulateUtils { class TriangleLoop {...
C++ (Qt)namespace FontTriangulateUtils {typedef TriangulateUtils::TriangleLoop TriangleLoop;