免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1411 | 回复: 3
打印 上一主题 下一主题

[C++] 请教C++语法问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-01-31 16:09 |只看该作者 |倒序浏览

代码来自log4cpp:
    struct StringLiteralComponent : public PatternLayout:atternComponent {
        StringLiteralComponent(const std::string& literal) :
            _literal(literal) {
        }

        virtual void append(OstringStream& out, const LoggingEvent& event) {
            out << _literal;
        }

        private:
        std::string _literal;
    };

请问   struct StringLiteralComponent : public PatternLayout:atternComponent 是什么意思?

论坛徽章:
0
2 [报告]
发表于 2005-01-31 16:54 |只看该作者

请教C++语法问题

PatternLayout有个文件命名过的,是名字空间,PatternComponent 是这个命名空间里的一个类:
namespace PatternLayout
{
...
class PatternComponent
{
...
};
}

struct StringLiteralComponent : public PatternLayout:atternComponent
定义一个类StringLiteralComponent ,公有继承类PatternLayout:atternComponent


log4cpp以前用过,不知道是不是有bug,反正有时能把trace写入log文件里,有时就只能输出到屏幕上(自动把输出切换default模式),不知道是为什么。

不过他的代码是完全用模式写出来的,可以好好读读,好象框架是个command模式。

论坛徽章:
0
3 [报告]
发表于 2005-01-31 17:54 |只看该作者

请教C++语法问题

噢,看到了
namespace log4cpp {

    /**
     * PatternLayout is a simple fixed format Layout implementation.
     **/
    class LOG4CPP_EXPORT PatternLayout : public Layout {
     class LOG4CPP_EXPORT PatternComponent {
         public:
         inline virtual ~PatternComponent() {};
         virtual void append(OstringStream& out, const LoggingEvent& event) = 0;
     };
     };
  };
不过PatternLayout不是名字空间而是个类,多谢benlan

论坛徽章:
0
4 [报告]
发表于 2005-01-31 18:04 |只看该作者

请教C++语法问题

其实,这样用也是模拟namespace的用途。因为这个关键字支持的比较晚。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP