如何在main()函数之外创建一个形状

How to make a shape outside of the main() function

本文关键字:一个 创建 main 函数      更新时间:2023-10-16

我知道如何定义一个形状(这里是矩形)并将其附加到C++中的窗口,如下所示:

  #include <Simple_window.h>
void cir() { Circle c(Point(100,100),50); }
int main()
{
  Simple_window win(Point(100,100),600,400, "test");
  Rectangle r(Point(100,100),Point(300,200));
  win.attach(r);
  win.wait_for_botton();
}

但是如何在main()之外定义一个形状(比如说circlecir()函数定义函数,即如何在cir()函数内部创建一个圆,当我在main()函数中调用它时,它会返回那个圆,这样我就可以将它附加到窗口win上,使其可见?

附言:我只是通过PPP书(这个)学习了C++,直到第14章结束:-)

可能是这样的吗?

  #include <Simple_window.h>
  Circle c(Point(100,100),50);
  int main()
  {
    Simple_window win(Point(100,100),600,400, "test");
    Rectangle r(Point(100,100),Point(300,200));
    win.attach(r);
    win.attach(c);
    win.wait_for_botton();
  }

或者,如果你想使用cir函数:

Circle cir()
{
  Circle c(Point(100,100),50);
  return c;
}
int main()
{
  Simple_window win(Point(100,100),600,400, "test");
  Rectangle r(Point(100,100),Point(300,200));
  win.attach(r);
  win.attach(cir());
  win.wait_for_botton();
}

或者你可能想做这样的事情,很难从你的问题中知道:

// The & is important, it will pass this argument as a reference
void attachCircleToWindow(Simple_window &win) 
{
  Circle c(Point(100,100),50);
  win.attach(c);
}
int main()
{
  Simple_window win(Point(100,100),600,400, "test");
  Rectangle r(Point(100,100),Point(300,200));
  win.attach(r);
  attachCircleToWindow(win);
  win.wait_for_botton();
}
相关文章: