原帖由 flw 于 2007-9-30 17:58 发表
其实我的回答,意思就是说每个人都应该自信、自省。
可以说,这种问题问别人是没有答案的——你换个角度讲讲,当别人问到你比较擅长的某个领域(比如足球象棋斗地主)“何种水平才算差不多了”时,你该如何回 ...
原帖由 xinxinhao 于 2007-9-30 17:37 发表
问下各位高人...
我一直很疑惑,,,不知道我自己的C++学习到了什么程度,,,
C++到底学到什么水平啦才算学得差不多啦 ????
谢谢..谁能告诉我.
//摘自”boost/any.hpp” class any { public: class placeholder //泛型数据容器holder的非泛型基类 { public: // structors virtual ~placeholder() //虚析构函数,为保证派生类对象能用基类指针析构 {} public: // queries virtual const std::type_info & type() const = 0; //提供关于型别的信息 virtual placeholder * clone() const = 0; //复制容器 }; template<typename ValueType> class holder : public placeholder // { public: // structors holder(const ValueType & value) // : held(value) {} public: // queries virtual const std::type_info & type() const { return typeid(ValueType); //typeid返回std::typeinfo对象引用,后者包含任意 //对象的型别信息如name,还提供operator==操作符 //你可以用typeid(oneObj)==typeid(anotherObj)来比 //两个对象之型别是否一致 } virtual placeholder * clone() const { return new holder(held); //改写虚函数,返回自身的复制体 } public: // representation ValueType held; //数据保存的地方 };//类定义结束 placeholder * content; //指向泛型数据容器holder的基类placeholder的指针 template<typename ValueType> any(const ValueType & value) : content(new holder<ValueType>(value)) //模板构造函数,动态分配数据容器并调用其构 //造函数 {} ... template<typename ValueType> any & operator=(const ValueType & rhs) //与模板构造函数一样,但使用了swap惯用手法 { any(rhs).swap(*this); //先创建一个临时对象any(rhs),再调用下面的swap函数进行底层 //数据交换,注意与*this交换数据的是临时对象,所以rhs的底层 //数据并未被更改,只是在swap结束后临时对象拥有了*this的底 //层数据,而此时*this也拥有了临时对象构造时所拥有的rhs的数 //据的副本。然后临时对象由于生命期的结束而被自动析构,*this //原来的底层数据随之烟消云散。 return *this; } any & swap(any & rhs) //swap函数,交换底层数据 { std::swap(content, rhs.content); //只是简单地将两个指针的值互换 return *this; } ~any() //析构函数 { delete content; //释放容器,用的是基类指针,这就是placeholder需要一个虚 //析构函数的原因 } ... }; |
原帖由 zhujiang73 于 2007-10-1 11:37 发表
那就可以毕业了。boost::any 是很经典的 C++ 代码, C++ 几乎已经精锐尽出了,不过使用 boost::any 还是比较简单的。 C++ 用语法和扩展库的复杂,换取了应用编程的简单清晰,完成同样功能 C++ 的代 ...
原帖由 zhujiang73 于 2007-9-30 21:55 发表
看懂这个就差不多啦:
http://www.stlchina.org/twiki/bin/view.pl/Main/BoostSource_any
//摘自”boost/any.hpp”
class any
{
public:
&nb ...
原帖由 zhujiang73 于 2007-9-30 21:55 发表
看懂这个就差不多啦:
http://www.stlchina.org/twiki/bin/view.pl/Main/BoostSource_any
//摘自”boost/any.hpp”
class any
{
public:
&nb ...
欢迎光临 Chinaunix (http://bbs.chinaunix.net/) | Powered by Discuz! X3.2 |