對於經驗豐富的編程人員來說,C++編程語言他們應該再熟悉不過了。這樣一款功能強大的語言,給他們的程序開發帶來了非常大的好處,我們今天就可以從C++標准擴展的方法來體驗一下這語言的功能特點。
今天實驗一下C++標准擴展中的shared_ptr的使用,結果在gcc4.1上怎麼也編譯不過去,上網查了一下,還下載了TR1的手冊。終於明白了,要在#include中加入
- #include < tr1/memory>
- #include < iostream>
- #include < string>
- #include < tr1/array>
- #include < tr1/memory>
- using namespace std;
- using std::tr1::shared_ptr;
- class Widget
- {
- public:
- Widget()
- {
- pstr = new string("Hello world!");
- cout < < "Widget's construction is called" < < endl;
- }
- Widget(const Widget& rhs) { cout < < "Widget's copy
construction is called" < < endl; }- Widget& operator=(const Widget& rhs) { return *this; }
- ~Widget()
- {
- delete pstr;
- cout < < "Destruction is called" < < endl;
- }
- private:
- string* pstr;
- };
- int main()
- {
- auto_ptr< Widget> pInv(new Widget);
- auto_ptr< Widget> pInv2(pInv);
- shared_ptr< Widget> pInvN(new Widget);
- array< int, 5> a = {{1,2,3,4,5}};
- cout < < a[3] < < endl;
- return 0;
- }
這個文件。呵呵,可能是自己太不小心了!這次C++標准擴展的部分,根據TR1的說明主要有:
- Reference Wrappers
- Shared_ptr
- result_of
- mem_fn
- Function Object Binders
- Polymorphic Function Wrappers
- Type Traits
- Random Numbers
- Tuples
- Array
- Hash Functions
- Regular Expressions
- Complex Number Algorithms
這些C++標准擴展部分,我們看到了期待以久的正則表達式也在這裡面哦!