C ++:命名空间std和string

时间:2018-04-29 11:28:38

标签: c++

我正在尝试模仿#include <string>namespaces的行为,以便更好地理解dependenciesstd::等......

在空项目中,如果我使用#include <string>,则无法显示std::,但在执行std::string时,会出现一组新选项,包括字符串namespace当然...

我试图模仿这个std namespace分辨率,这样我就能更好地理解这一切是如何运作的......

因此,如果我的nsRoot1(在下面的代码中)代表<string class>之类的内容,我将如何包含仅在我使用#include <string>时可用的新namespace nsRoot1 { } namespace nsString { class mCls2 { public: mCls2(); ~mCls2(); private: }; } #include <string> int main() { std::string str; return 0; } 行为。

// main.cpp
#include "myStd.h"

int main()
{
    mySTD::myStr aa;
    aa.ToLower();

}

// myStd.h 
#pragma once
namespace mySTD
{
    class myStr
    {
    public:
        myStr();
        ~myStr();
        void ToLower(){}
    private:

    };
}

这是尝试模拟相同行为的另一个示例。 std如何在不同的头文件中分隔字符串类,只有在我们使用#include

时才可用
// main.cpp
#include "myStd.h"
#include "myString.h"

int main()
{
    mySTD::myStr aa;
    aa.ToLower();
}

// mySTD.h
#pragma once
namespace mySTD
{
}

// myStr.h

#pragma once
namespace mySTD
{
    class myStr
    {
    public:
        myStr();
        ~myStr();
        void ToLower() {}
    private:

    };
}

在你的帮助下,我能够模仿我想要的东西,所以这就是我想出来的结果......

  getWatchlist(query: string): BehaviorSubject<IWatchlist> {
    this.search(query)
      .subscribe((searchResults: Observable<ISearchResults>) => {
        const watchlist = formatSearchResults(searchResults);
        this.watchlist$.next(watchlist);
      });
    return this.watchlist$;
  }

谢谢...

0 个答案:

没有答案