chromium - using special class
发布日期:2021-06-30 22:19:29 浏览次数:2 分类:技术文章

本文共 1573 字,大约阅读时间需要 5 分钟。

前言

在web-ui中post一个任务时,使用到了BrowserThread::PostTask。

开始编译不过,去看官方测试程序时,发现人家用了using content::BrowserThread;
我以前只用using namesapce xx.
看来工程大了,作者考虑的就是不同。
指定某个实现文件使用特定名字空间的类,看起来更明确。
做了实验,在同一个cpp中的不同函数中,也可以指定使用不同空间的相同类名。

实验

// @file main.cpp// @brief test using special class// @note// 如果不在函数中指定用哪个名字空间的哪个类, 可以在实现文件的上面声明使用哪个空间的哪个类// 如果工程比较大,有很多同名的类,使用using ns:class 比用 using namespace好, 使用名字空间中的类的粒度更细.// 查代码实现时,更明确,代码维护更方便。#include 
namespace ns_a { class cls_a { public: cls_a() :m_i_cnt(0) {} cls_a(int i_in) { m_i_cnt = i_in; } cls_a& operator=(const cls_a& in) = delete; cls_a(double f_in) = delete; void show() { printf("ns_a::cls_a m_i_cnt = %d = 0x%X\n", m_i_cnt, m_i_cnt); } private: int m_i_cnt; };}namespace ns_b { class cls_a { public: cls_a() :m_i_cnt(0) {} cls_a(int i_in) { m_i_cnt = i_in; } cls_a& operator=(const cls_a& in) = delete; cls_a(double f_in) = delete; void show() { printf("ns_b::cls_a m_i_cnt = %d = 0x%X\n", m_i_cnt, m_i_cnt); } private: int m_i_cnt; };}using ns_a::cls_a;void test_ns_a();void test_ns_b();void test_ns_default();int main(){ test_ns_a(); test_ns_b(); test_ns_default(); return EXIT_SUCCESS;}/** run result>> test_ns_a()ns_a::cls_a m_i_cnt = 0 = 0x0>> test_ns_b()ns_b::cls_a m_i_cnt = 1024 = 0x400>> test_ns_default()ns_a::cls_a m_i_cnt = 666 = 0x29A*/void test_ns_a(){ using ns_a::cls_a; printf(">> test_ns_a()\n"); cls_a a; a.show();}void test_ns_b(){ using ns_b::cls_a; printf(">> test_ns_b()\n"); cls_a b(1024); b.show();}void test_ns_default(){ printf(">> test_ns_default()\n"); cls_a a(666); a.show();}

转载地址:https://lostspeed.blog.csdn.net/article/details/85091096 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:chromium - post task for web-ui
下一篇:chromium - get value from base:Value

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年04月14日 13时39分37秒