大侠指教关于类文件的组织方法

大鸟的小天空 2005-11-26 11:48:56
比如:我有3个类,日志类log 数据库类mysql 和程序类myRun[主程序类]
mysql和myRun都要调用log生成日志。
那么在mysql类中我怎么使用log类功能,
1。在mysql中定义log的对象,这样如果我有10个类调用log,则要生成10个log对象。是不是浪费一点。
2。在mysql.h中使用extern log mylog; 那么我需要在myRun中定义log对象。在mysql.h中include <myRun.h>是不是[问题1],这样的话,如果我有一个测试类myTest,来测试mysql的功能,就不会用到myRun类了,那么这时候mysql.h中就要include <myTest.h>,如果这样就要在mysql.h中使用#ifdef test对不对?

我这样的使用是不是合乎正常的c++文件组织形式,应该是第二种方案更好,对不?
有没有更好的组织方式。。

小弟没有太多的c++编程经验,但是希望作点比较完整的东西,望指教。
最好能给出一些关于c++类组织形式的指导。实战中的。
谢谢先。。

那位高手愿加偶QQ:22177861 指教这些简单的基础东西,更感激不禁。新手也可以相互切磋。。
...全文
152 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
大鸟的小天空 2005-12-01
  • 打赏
  • 举报
回复
这几天出差了,没有结贴.sorry

stanley_yue 2005-11-28
  • 打赏
  • 举报
回复
看看设计模式,singleton应该是很好的选择。
代码也很简单:
The Singleton class is declared as

class Singleton {
public:
static Singleton* Instance();
protected:
Singleton(); //重要,一定不能放到public里
private:
static Singleton* _instance;
};

The corresponding implementation is

Singleton* Singleton::_instance = 0;

Singleton* Singleton::Instance () {
if (_instance == 0) {
_instance = new Singleton;
}
return _instance;
}

fiftymetre 2005-11-28
  • 打赏
  • 举报
回复
静态成员变量.static是不可以跨文件使用的吧。过多的使用这个你以后不用维护啦
jixingzhong 2005-11-27
  • 打赏
  • 举报
回复
呵呵 ~

楼主明白了 ~
xiaocai0001 2005-11-26
  • 打赏
  • 举报
回复


被楼主说晕了.

建立楼主可以使用静态成员变量.

或者定义一个类
class shareLog
{
static log mysqlLog;
public:
static log &GetLogHandle();
}

log &shareLog::GetLogHandle()
{
return mysqlLog;
}

在其它需要使用log对象时, 只需要调用 shareLog::GetLogHandle()就可以了.

不知道我说清楚了没有~ -_-!!
oyljerry 2005-11-26
  • 打赏
  • 举报
回复
嗯,singleton模式
大鸟的小天空 2005-11-26
  • 打赏
  • 举报
回复
明白了,1楼的,呵呵。。。thanks。。
基本上就是单件模型,我咋就忘了。。^_^。。
c++的伟大把我弄晕了。thinks....



====CSDN 小助手 V2.5 2005年11月05日发布====
CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/11/05/523395.aspx
下载:http://szlawbook.com/csdnv2

snowbirdfly 2005-11-26
  • 打赏
  • 举报
回复
恩~~~
可以使用日志类log定义bool AddLog(...),然后mysql类或者其他类中加入该头文件直接调用就可以了~~~
定义一个日志类log类型的m_Log~~

64,647

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧