effective c++ Archive

  • Pre: 在More Effective C++条款8中,介绍new operator的时候,说new operator是由两部分组成的,一部分是operator new,用来根据对象大小申请空间;另一部分是对象的构造函数,用来初始化对象。代码描述如下: //申请空间,用来存放string对象 void *memory = operator new(sizeof(string)); call string::string(

    无法触及的构造函数?

    Pre: 在More Effective C++条款8中,介绍new operator的时候,说new operator是由两部分组成的,一部分是operator new,用来根据对象大小申请空间;另一部分是对象的构造函数,用来初始化对象。代码描述如下: //申请空间,用来存放string对象 void *memory = operator new(sizeof(string)); call string::string("Memory Management") on memory; string *ps = static_cast<string*>(memory); 意思简单明了 […]

    Continue Reading...

  • 多态性使程序员可以使用父类的指针或者引用来访问子类对象,就好像父类有多种类型,但是假如我们将多态性和数组联系在一起,会发现一些让人头疼的问题。 我们简单定义一个父类,拥有一个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...