总结
lwwworkspace
学生
展开
-
C++多态性一些总结
<br />#include<iostream>using namespace std;/* 总结多态性几个要点: 1、一定要有虚函数,非虚函数不能实现多态 2、子类一定要改写父类的虚函数,不改写不能实现多态 3、必须用父类指针指向子类对象来调用虚函数,直接用子类指针 来调用不是多态性,而只是普通调用 4、有一个纯虚函数的类就叫抽象类 5、虚函数里面可以写代码,且需要声明*/class Shape{public: void draw() {原创 2010-08-06 17:56:00 · 576 阅读 · 0 评论 -
explicit一些用途
<br />explicit是在类里面声明构造函数的,它的作用是可以防止对象间的隐式转换。被声明为explicit的构造函数通常比其非explicit更受欢迎,因为它们禁止编译器执行非预期的类型转换。除非有一个好理由允许构造函数被用于隐式类型转换,否则我会把它声明为explicit。例如:class Dog{public: Dog() {} /* explicit */ Dog(int i) {} void func(Dog dog) { }};int _tmai原创 2010-08-06 18:01:00 · 454 阅读 · 0 评论 -
dynamic_cast 的一些用途
<br />要使用dynamic_cast动态类型转换,必须满足下面条件:1、基类至少要有一个虚函数2、需要多态性3、编译器打开RTTI检查dynamic_cast功能:当某些情况下不能使用运行时多态的时候,就可以用dynamic_cast代替,例如:struct Base{ virtual void func(){}};struct D : public Base{ void func(){} void f(){}};void tes原创 2010-08-06 18:05:00 · 723 阅读 · 0 评论 -
const的一些总结
<br />1 int* p;<br />2 const int* p;<br />3 int const* p;<br />4 int* p const;<br />5 const int* p const;<br />要判断const修饰指针的特性,我们可以看const这个关键字在*号的左边还是右边。<br />const int* p;<br />const在*号的左边,说明指针p指向的内容的值不能被修改,而指针的地址可以被修改,即可以从新指向到别的变量。<br />int* p const;<br原创 2010-08-06 18:07:00 · 299 阅读 · 0 评论 -
链栈的一些操作
<br />LinkStack.h头文件<br />#ifndef LINKSTACK_H_H #define OK 0 #define ERROR -1 typedef int type; typedef struct LNode { type data; struct LNode *next;}*LinkStack; int init_linkStack(LinkStack*);int make_node(LNo原创 2010-08-06 20:36:00 · 353 阅读 · 0 评论