【发布时间】:2010-10-20 23:34:23
【问题描述】:
假设我有类似这样的编码
class Normal_Mode;
class Fast_Mode;
class File_Control; //handles all operations with reading/writing in file
class Main_Control {
private:
some_class *root; //all other classes need access to root pointer since there is all the data(binary tree)
File_Control *c_file_control;
Fast_Mode *c_fast_mode;
...
}
Main_Control::Main_Control ( int argc, char* argv[]) {
...
if ( argc > 1 ) {
c_fast_mode = new Fast_Mode(argc, argv[]);
} else {
c_normal_mode = new Normal_Mode();
};
...
};
int main (int argc, char* argv[]) {
Main_Control c_main_control(argc,argv);
return 0;
}
假设用户输入的 argc > 1,我很高兴在 Fast_Mode 类中处理用户输入的内容,但是当我完成并想要在 Fast_Mode 下将内容写入文件或从文件中读取内容时。 现实世界中的人如何访问 File_control 类?
他们是否使一些全局数组充满了指向这些只需要 1 个实例的类的指针。
他们是否将指针传递给 Fast_Mode 和其他类,以便可以将其存储在私有成员中以供访问。
或者他们一直在构造/销毁这些类,具体取决于何时需要。
他们如何处理存储所有实际数据并且许多其他类需要访问它的 *root 指针
或者我的设计理念完全错误,现实世界中的人们会以其他方式这样做?
【问题讨论】:
标签: c++ class class-design