FLTK:重写 FL_box 构造函数。 C++

Posted

技术标签:

【中文标题】FLTK:重写 FL_box 构造函数。 C++【英文标题】:FLTK: Override the FL_box constructor. C++ 【发布时间】:2015-04-02 10:13:16 【问题描述】:

我正在尝试使用 FLTK(快速光带套件)制作窗户。编译时出现此错误。有人可以帮忙吗!

我在 fltk1.cpp 中的代码

#include <iostream>
#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include <FL/Fl_Box.H>

//Drawing functions
#include <FL/fl_draw.H>

// Subclass of Fl_box
class dotbox : public Fl_Box   
int x = 180;
public:

using Fl_Box::Fl_Box; //Inherits the constructor from base (C++11)

  void draw() override //Override draw from box ('override' er C++11)   


    fl_color(FL_RED); 
    fl_pie(160,80,30,30,0,360); //draw

    fl_color(FL_GREEN); //...repeats
    fl_pie(170,90,40,40,0,360);

    fl_color(FL_BLUE);
    fl_pie(x++,100,30,30,0,360);
  
;

错误:我在编译时得到的:

    Building for 1.3.3
g++ -std=c++11 fltk1.cpp -o fltk1 -L/usr/local/lib -lfltk -lXfixes -lXext -lpthread -ldl -lm -lX11
fltk1.cpp:15:15: error: ‘Fl_Box::Fl_Box’ names constructor
fltk1.cpp: In function ‘int main(int, char**)’:
fltk1.cpp:50:37: error: no matching function for call to ‘dotbox::dotbox(<brace-enclosed initializer list>)’
fltk1.cpp:50:37: note: candidates are:
fltk1.cpp:11:7: note: dotbox::dotbox() <deleted>
fltk1.cpp:11:7: note:   candidate expects 0 arguments, 4 provided
fltk1.cpp:11:7: note: dotbox::dotbox(const dotbox&) <deleted>
fltk1.cpp:11:7: note:   candidate expects 1 argument, 4 provided
fltk1.cpp:51:41: error: no matching function for call to ‘dotbox::dotbox(<brace-enclosed initializer list>)’
fltk1.cpp:51:41: note: candidates are:
fltk1.cpp:11:7: note: dotbox::dotbox() <deleted>
fltk1.cpp:11:7: note:   candidate expects 0 arguments, 4 provided
fltk1.cpp:11:7: note: dotbox::dotbox(const dotbox&) <deleted>
fltk1.cpp:11:7: note:   candidate expects 1 argument, 4 provided
make: *** [fltk] Error 1

有什么想法吗?

我通过取消注释解决了这个问题,

//使用 FL_Box::Fl_Box; 并添加这行代码。

   dotbox(int X, int Y, int W, int H) : Fl_Box(X, Y, W, H, 0) 

【问题讨论】:

【参考方案1】:

我通过取消注释解决了这个问题,

//using FL_Box::Fl_Box; 并添加这行代码。

 dotbox(int X, int Y, int W, int H) : Fl_Box(X, Y, W, H, 0) 

【讨论】:

以上是关于FLTK:重写 FL_box 构造函数。 C++的主要内容,如果未能解决你的问题,请参考以下文章

如何绘制多个矩形 FLTK C++

C++基础6 继承 类型兼容 satatic 多继承 虚继承 多态 案例 虚析构函数 重载重写重定义

FLTK 颜色 if 语句

C++父类中声明了一个虚函数以后 是否在子类 以及子类的子类中 都要声明并重写这个函数?

C++ 构造函数 & 析构函数

含有指针变量的类需要重写拷贝构造函数,拷贝赋值函数,析构函数