c++ 中static final abstrace virtual
来源:互联网 发布:2s19自行榴弹炮知乎 编辑:程序博客网 时间:2024/05/20 19:49
final 是常量,不变的。
1、final的成员变量不能改变。
2、final的局部变量不能改变。
static 是静态变量,它在编译时系统就分配内存,程序结束时才释放。
1、在类中,用static声明的成员变量为静态成员变量,它为该类的公用变量,在类加载的时候被创建并初始化(只被创建初始化一次),对于该类的所有对象来说,staitic成员变量只有一份。
2、用static声明的方法为静态方法,在调用该方法时,不会将对象的引用传递给它,所以在static方法中不可访问非静态的成员。
3、可以通过对象引用或类名访问静态成员。也就是说即可使用对象引用也可使用类名来访问静态的成员变量和成员方法。
正常创建子类对象时:
构造函数从父类到子类
析构函数从子类到父类
Animal* pa = new Dog();
如果不加两个virtual,第二步调用的将是Animal的foo()函数,第三步将只会调用Animal的析构函数(看左边)
加了virtual看右边,第二步调用的将是Dog的foo()函数,析构函数将会先调用子类的再调用父类的
virtual的继承性
只要基函数定义了virtual,继承类的该函数也就具有virtual属性,即 GrandFather Father Son同时定义virtual void fun()与GrandFather一个定义virtual void fun效果是一样的。
表示虚拟继承,和普通继承是C++的两种继承方式。 例如B1、B2 继承A 而C多重继承B1、B2 如果普通继承则C包含两份A的拷贝,分别来自于B1、B2 而虚拟继承则只包含一份A的拷贝
c++中存在多重继承:
private:该类的函数和其友元函数
public:该类函数和其友元函数和子类的函数
public:该类的函数和其友元函数和子类函数和该类的对象
abstrace类中必有纯虚函数,virtual=0,不能定义对象
含有纯虚函数的抽象类不能被实例化,它必须得有子类。子类重写了它的纯虚函数之后,才能够实例化。
C++中,由virtual实现多态。除多态外,virtual有两个特殊用法:
1、虚基类(Virtual base class)
为解决多重继承时的二义性提出来的。使用方法:
class B :virtual public A
class C :virtual public A
class D: public B, public C
Abstract class
2、纯虚函数
含有纯虚函数的类叫做抽象类。纯虚函数如下:
void virtual foo() = 0;
- c++ 中static final abstrace virtual
- c++------virtual const static
- Java中final、static
- C#中的virtual、override、static
- [C++]static, virtual, const关键字
- Java中static、final用法
- JAVA中static与final
- Java中static、final用法
- java中static和final
- java中final和static
- java 中final 和 static
- java中static 和 final
- java 中static final关键字
- java中static,final,abstract
- java中final和static
- java 中static final用法
- Java中final和static
- Java 中final与static
- 一个微信开发时遇到的问题
- JavaScript instanceof 运算符深入剖析
- URL编码与解码问题
- 关于顺利登录PL/SQL Develope的几点重要步骤
- Codeforces 718C C. Sasha and Array
- c++ 中static final abstrace virtual
- 结束了
- map的详细用法
- Xcode 单元测试
- 数据仓库建模-0-初
- 小米2017 笔试题
- SpringBoot学习篇二
- Swift中运用didSet方法时的注意事项
- 左右法则解决复杂声明