Archive for 七月, 2014

  • 多态性使程序员可以使用父类的指针或者引用来访问子类对象,就好像父类有多种类型,但是假如我们将多态性和数组联系在一起,会发现一些让人头疼的问题。 我们简单定义一个父类,拥有一个int类型的数据成员,有一个虚函数把它打印出来: class Base{ public: Base(int v = 0):bvalue(v){} virtual void printValue() { std::cout<<

    不要指望数组的多态性

    多态性使程序员可以使用父类的指针或者引用来访问子类对象,就好像父类有多种类型,但是假如我们将多态性和数组联系在一起,会发现一些让人头疼的问题。 我们简单定义一个父类,拥有一个int类型的数据成员,有一个虚函数把它打印出来: class Base{ public: Base(int v = 0):bvalue(v){} virtual void printValue() { std::cout<<"bvalue: "<<bvalue<<std::endl; } private: int bvalue; }; 然后再定义一个类似的子类: class Derive […]

    Continue Reading...

  • C++使用四个新的转型操作符来代替传统C语言的转型方式: 1.static_cast<type>(expression) 最常用的一种转型方式,几乎与旧式的C语言拥有相同的转型威力与意义。如将int转换为double等,但不能将int转化为一个自定义的strut类型,因为本身就不符合这种转化方式。 2.const_cast<type>(expression) 针对对象的const特性提供的一种转型方式,用来去掉对象的const特性。如: class Base{}; class Derived:public Base{}; 定义一个子类一个父类,为了阅读方便,省略类的详细 […]

    最好使用c++转型操作符

    C++使用四个新的转型操作符来代替传统C语言的转型方式: 1.static_cast<type>(expression) 最常用的一种转型方式,几乎与旧式的C语言拥有相同的转型威力与意义。如将int转换为double等,但不能将int转化为一个自定义的strut类型,因为本身就不符合这种转化方式。 2.const_cast<type>(expression) 针对对象的const特性提供的一种转型方式,用来去掉对象的const特性。如: class Base{}; class Derived:public Base{}; 定义一个子类一个父类,为了阅读方便,省略类的详细 […]

    Continue Reading...