后台开发核心技术02面向对象C++

简介:本文章主要从面向对象编程的三大特点来叙述:封装、继承、多态
1) struct 和 class 在C++中唯一的区别就是默认的访问权限不同,struct默认访问权限是public的,而class是private的;
2) 一个类中如果定义了全是默认参数的构造函数,那么就不能再定义重载函数了。(二义性)
3)静态成员 静态成员是类的成员,而不是某个对象的成员,类的静态成员拥有一块单独的存储区,不管创建了多少该类的对象,静态成员都是唯一的一个,共享的,这就为不同的对象提供了一种相互通信的办法(与不同进程间共享内存的进程通信方式类似)。注意 :静态成员的定义必须出现在类的外部且只能定义一次,所以在头文件中定义静态变量容易引起重复定义的错误;无论是基类还是派生类都可以改变静态变量的值,说起来挺复杂,其实代码表述简单的多:

#include<iostream>
using namespace std;
class Base{
      //定义的基类 Base
public:
   static int var;
};
int Base::var=10;
class Derived:public Base{
   }; //派生类是空的,直接继承

int main(){
   
  Base base1;
  base1.var++;
  cout<<base1.var<<endl;
  Base base2;
  base2.var++;
  cout<<base2.var<<endl;
  Derived derived1;
  derived1.var++;
  cout<<derived1.var<<endl;
  Base::var++;
  cout<<derived1.var<<endl;
  return 0;
}

在这里插入图片描述
内存的占用: 类的一般数据成员是不占用内存空间的,只有在定义对象时才会为对象的数据成员分配空间。但是类的静态数据成员不属于某一个对象,在所有对象之外单独开辟一段内存来存放。
静态成员函数: 与普通成员函数的根本区别是:非静态成员函数有 this 指针,静态成员函数没有 this 指针。静态成员函数一般是用来处理静态数据成员的,因为静态数据成员不属于某一个对象,所以不能用 this 指向静态数据成员,只能用静态成员函数来处理;
4)对象的存储空间: 一个比较

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值