1. 程式人生 > 實用技巧 >c++ 用巨集代替常用的函式

c++ 用巨集代替常用的函式

原文:https://beondxin.blog.csdn.net/article/details/106742997

#define QUICK_GETSET(name,type) \
    virtual void Set_##name (const type &_arg) \
    { \
        this->name = _arg; \
    } \
    virtual type Get_##name () const{ \
        return this->name; \
    }

#ifndef DISTANCEPOLYDATA_H
#define
DISTANCEPOLYDATA_H #include <ArteryflowScript> class vtkActor; class QVtkRenderer; class vtkScalarBarActor; class DistancePolyData : public Script { Q_OBJECT public: explicit DistancePolyData(QObject *parent = nullptr); virtual ~DistancePolyData() override; virtual void Execute() override
; virtual bool BuildView()override; private: virtual void Initial() override; public: void ViewOff(); QUICK_GETSET_Object(vmtk_renderer_, QVtkRenderer) QUICK_GETSET_Object(surface_small_, vtkPolyData) QUICK_GETSET_Object(surface_big_, vtkPolyData) QUICK_GETSET_Object(surface_, vtkPolyData) QUICK_GETSET(target_reduction_,
double) void SetScalarRange(double value[2]); void GetScalarRange(double &value1, double &value2); private: double target_reduction_;// 壓縮係數 double scalar_range_[2];// 標量範圍 vtkSmartPointer<vtkPolyData> surface_small_;// 小模型 vtkSmartPointer<vtkPolyData> surface_big_;// 大模型 vtkSmartPointer<vtkPolyData> surface_;// 結果模型 QPointer<QVtkRenderer> vmtk_renderer_; vtkSmartPointer<vtkActor> actor_; vtkSmartPointer<vtkScalarBarActor> scalar_bar_actor_; }; #endif // DISTANCEPOLYDATA_H