C++(CPP)中的类与对象(析构,构造,const,static)

一、类和对象

  • 类是对象抽象,对象是一个具体实体;

  • 类是一个数据类型(类似于C语言中的结构体,还可以是函数)

  • 对象是通过类这一个数据类型所定义的变量;

  • 类中主要包含两种类型的成员:

    成员变量 -- > 描述的类的属性;

    成员函数 --> 描述的类的行为;

如何去声明一个类:
class 类名     /*类头, class可以用struct替换,成员的默认权限有所不同,*/
类体
{
     属性: 类的成员变量
     行为: 类的成员函数 
};

     注意:对于类的成员的属性主要包含三种:
     private: 私有成员,只能在当前类中可以访问;
     protected:受保护成员,只能在当前类或者派生类中访问;/*派生类的时候,会做介绍*/
     public:公有成员,可以在任意的地方访问    
    

声明一个类的形式:
1. 多个文件:(在实际应用过程中,大多采用此方式实现)
    .h文件做类的声明(成员的声明);
    .cpp文件做成员函数的定义;
2. 一个文件:(针对比较简单的类的时候使用)
    将成员函数在类的内部声明的时候做定义;
    将成员函数在类的外部的做定义,类的内部只需要声明函数就ok;

二、构造与析构函数

  构造函数:

  1.     当声明类的时候,如果没有实现构造函数,系统会执行默认的构造函数;

  2.     构造函数的函数名和类名相同,并且没有返回值的函数是构造函数;

  3.     构造函数的参数可以设计者根据需求自行设计,所以参数可以不同,也就说构造函数        可以重载;

  4.      构造函数的参数可以设计默认参数值;

  5.      构造函数的作用,用于对象的初始化(创建对象的时候,对对象的成员进行初始化的        过程);

  析构函数:

  1.    在声明一个类的时候,如果在类中没有实现析构函数,系统会自动生成一个默认析构       函数;

  2.    所谓的析构函数,是构造函数的反函数,函数名为(~类名),没有返回值也没有参       数的函数;

  3.   析构函数可以由系统自动去执行,也可以由程序显示调用执行;

  4.  析构函数不可以重载,因为析构函数没有参数;

  复制构造函数;

 

三、static 关键字的含义


C语言中:

    1. 修饰局部变量:改变了变量的存储位置和生命周期
    

  •     普通的局部变量:存储位置为栈区,生命周期为局部模块内(模块内程序执行的时候开辟空间,到模块执行结束的时候,释放资源);

  •     static修饰的局部变量:存储位置在静态存储区,生命周期是整个程序执行期间;

    
  2. 修饰全局变量和函数:改变了链接属性(作用域)
        

  •      普通的全局变量或者函数:作用域是整个程序(程序的任意地方都可以链接)

  •     static修饰的全局变量或者函数:作用域在定义的文件中有效,(只能在当前文件中可以链接);

 

 CPP中:
    修饰成员:静态成员,该成员被设置为多个对象共同拥有的成员,不再属于具体的某一个对象;
访问形式:
        
1. 对象.成员;
    
2. 类::成员;

 

四、const关键字
 
在C语言中:
    将变量常量话,也就说用来修饰一个只读变量;

  •     int const *p;               将指针的指向常量化

  •     int *p;                          将指针的指向常量化

  •     int * const p;              将指针的值常量化

  •     const int *const p;     将指针的值和指向常量化

在CPP中

const成员函数:

  •     用const修饰的成员函数, 在成员函数声明和定义的时候,在函数头的后面添加const;

  •     在const成员函数内部,不能直接或者间接的修改对象的值;

  •     在const成员函数内部不能调用非const成员函数,可以调用cosnt成员函数;

  •     const成员函数可以被非const成员函数调用。

 
 const对象:

  •     用const修饰的对象,在创建对象的时候,需要将其进行初始化,后续不能来修改对象的      值;

  •     const对象不能调用非const成员函数,避免间接修改cosnt对象的值;

  •     cosnt对象,只能调用cosnt成员函数;

 const成员变量:

  •     用const修饰的成员变量,在创建对象的时候,需要将对应的const成员变量进行初始           化,后续不能来修改成员变量的值;

  •     onst成员变量初始化的时候,只能通过参数列表传递初始化值;

  •     const成员变量的值,在对象创建后,不能修改其值。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值