知识点记录1--类的小笔记

C++函数的重载,C++的虚函数,多态性

下面关于虚函数和函数重载的叙述不正确的是()
A.虚函数不是类的成员函数
B.虚函数实现了C++的多态性
C.函数重载允许非成员函数,而虚函数则不行
D.函数重载的调用根据参数的个数、序列来确定,而虚函数依据对象确定

  • C++的多态性
    运行时多态性则是动态编联完成,主要通过虚函数来实现;编译时多态性通过静态编联完成,例如函数重载,运算符重载;

c++中的函数重载(overload):是指在程序中出现了两个函数定义时,他们的函数名字是一样的,但是函数的参数类型和个数是不同。

函数重载(overload)条件:函数的参数类型不同;函数的参数个数不同

函数重载的使用范围 :可以是类中的成员函数,也可以不是是类中成员函数

C++中的虚函数

在基类的成员函数前加上virtual,然后在派生类中重写该函数,则在运行时程序会根据对象的实际类型来调用相应的成员函数。孙鑫老师书本上的例子如下

class animal
{
public:
virtual void breathe(){
cout<<"animal breathe";
}

};

class fish:public animal
{
public:
void breathe(){
cout<<"fish breathe";
}
};
void main(){
animal *pA;
fish pf;
pA=&pf;
pA->breathe();
}

C++类的内存结构

1.如果类中有虚函数,那么它就会有一个虚函数表的指针__vfptr,在类对象最开始的内存数据中。

2.之后是类中的成员变量的内存数据。

C++类所占内存大小计算方式

【1】在类中,如果什么都没有,则类占用1个字节,

【2】如果只有成员函数,则还是只占用1个字节,因为类成员函数不占用空间 

【3】一旦类中有其他的占用空间成员,则这1个字节就不在计算之内,比如一个类只有一个int则占用4字节而不是5字节。

【4】虚函数因为存在一个虚函数表,需要4个字节,先找有没有virtual 有的话就要建立虚函数表,+4 

【5】static的成员变量属于类域,不算入对象中      +0

【6】对齐法则





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值