C/C++编程细节(三)——类、继承、模板、运算符重载

本文详细探讨了C++编程中的关键概念,包括类与派生类的特性,如成员变量、成员函数、静态成员、常量成员以及构造与析构函数。此外,还讲解了继承方式对访问权限的影响,以及模板和运算符重载的应用。通过了解这些细节,开发者能更好地掌握C++编程的核心知识。
摘要由CSDN通过智能技术生成

1、类、派生类

      C++中类的概念很重要,重要到什么程度呢?把class/struct看成和main同一个等级,为什么这么说呢?因为,C++中不允许全局变量独立于类外,

所以,在一个C++文件中,除了头文件,就是class和main了。当然这只是其中一个原因。另外,类可以看做一种类型,和C中struct类似的一种类型。但又有一定的区别。下面具体分析。

       不论是类还是派生类,都是类,具有类的属性。关于类,将从以下几个方面进行阐述:

    (1)成员变量、成员函数

        成员变量是与类相关的变量,成员函数是对成员变量操作的函数。关于成员变量和成员函数的认识,可以通过sizeof 来认识。sizeof是一个运算符,用于计算数据类型的大小。sizeof(int);int a = 4;sizeof a ;

         a)空类、空结构体的大小为1个字节;如果只有成员函数,则还是只占用1个字节,因为类的成员函数独立于类的存储空间;

         b)只含有虚函数的类的大小为4,或8(64位);

         c)要注意const,static,它们存储在初始化数据区;

          【总结】:类表面上包含成员函数和成员变量,但在其存储空间,只包含成员变量,成员函数独立于类的存储空间,存放在代码区。


    (2)成员变量的访问方式

             a、内部访问:由类中的成员函数对类的成员进行访问;(类访问)

             b、外部访问:在类外,由类的对象对类的成员进行访问。(对象访问)

                     访问标号有三种,内部访问友元函数可以访问类中所以成员;外部访问只能访问类的共有成员。


      (3)static作用是限定作用范围

          【类外static】类外使用static其实就是C的范畴,和C中使用技巧一样。

             A、static局部变量:在栈空间定义的,但是存在于全局变量区

         和栈空间的局部变量比,其特点是:只初始化一次,存放地址不变,再次调用时,保持上一次的值不变

   B、static全局变量:以全局变量的方式定义,当然存在于全局变量区

         和一般的全局变量相比,其特点是:不能用extern声明为引用,在其他文件中调用,保持上一次模块调用后的值

【类内static】C++特有

   A、static成员变量:虽然定义在类内,但是存放在全局变量区,与对象无关,属于类;static成员变量要在类的定义外面初始化。    

   B、static成员函数:不含有this指针,所以不能调用本类的成员函数和成员变量,只能访问该类的静态成员变量,属于类。      

   此外,还要注意:

A、静态成员变量属于类,而不是属于某个特定的对象,它是由该类的所有对象共享的,因此不能在类的构造方法中初始化

B,静态成员属于该类所有对象公有,

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值