随笔分类 -  c/c++

摘要:1 typedef void(*F)(); 2 3 class A{ 4 public: 5 F** vptr;//指向虚函数表的指针,初始化于构造函数 6 int x=1; 7 A():vptr((F**)this){} 8 virtual void f0(){puts("f0");} 9 virtual void f1(){prin... 阅读全文
posted @ 2017-05-08 10:12 poluner
摘要:《effective c++》中提到: 如果class之间的继承关系是private,编译器不会自动将一个derived class对象转换为一个base class对象。 如果不能转换那多态就没有意义了,所以肯定是可以转换的,不过转换发生在derived class内部: 阅读全文
posted @ 2017-04-02 14:16 poluner
摘要:1. 首先明确:引用本质是const指针,编译时引用被转化成指针。深入分析C++引用 2. 由于是const类型,所以不能为空,而且初始化有且仅有一次,初始化之后不可更改指向的对象。 3. 引用占据空间,且大小跟指针一样 4. 多态中,父类的引用可以指向子类对象,如果说引用是别名怎么说的过去呢? 5 阅读全文
posted @ 2017-03-22 14:25 poluner
摘要:1. 重载:在相同作用域中,同名函数但参数列表不同,编译器将参数列表同函数名拼接在一起形成不同的符号,所以说重载必须参数列表不同,而不考虑返回类型。C++函数重载实现原理浅析。注意:重载不是多态,多态体现在虚函数运行时的动态绑定上! 2. 重写:父类虚函数与子类函数同名同参数列表,则为重写。 3. 阅读全文
posted @ 2017-03-21 23:07 poluner