我的文件很少:
main.cpp:
int main{
...
while(1){
...
draw();
...
}
...
return 0;
}
和draw.cpp: 我想在这里看到对象和所有操作。 我不能使draw()局部对象,因为draw()在循环内部, 所以我会得到许多对象构造函数/析构函数调用 - 所以它们是全局的。也 我做了init阻止以防止不必要的呼叫/分配
draw.cpp:
Object A, B;
int initialized = 0;
void draw(){
if(!initialized){
A.initialization;
B.initialization;
initialized = 1;
}
A.move(1,1);
B.rotate(45);
}
它有效,但我正在寻找更好的方法来组织我的代码
补充:
感谢您的回答,看起来我必须阅读有关模式设计的内容
答案 0 :(得分:2)
以下是让它更好地运作的步骤:
答案 1 :(得分:1)
选项1
定义一个名为Draw的新类,并将属性放入其中。您需要为此修改main和draw文件。有了这个,你可以避免声明任何全局
选项2
在draw.cpp中定义一个名为draw的类,并将当前的全局变量添加为静态成员变量。使用静态函数初始化并使用它们。有了这个,你不必改变主要。 这种设计技术称为Singleton(设计模式之一)
示例代码 draw.cpp
class Draw
{
public:
object A, B;
static void init()
{
// init A
// init B
isInitialized = 1;
}
static int isInitialized;
static Object & getA()
{
if(isInitialized == 0)
{
init();
}
return A;
}
// similarly B
};