C++面向对象基础

1,面向过程和面型对象的区别

面向过程:面向过程就是分析出解决问题所需要的步骤,然后按照逻辑顺序用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。 面向过程程序设计方法采用函数(或过程)来描述对数据的操作,但又将函数与其操作的数据分离开来;

面向对象:面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。面向对象具有抽象性、封装性、继承性及多态性。

面向对象程序设计方法将数据和对数据的操作封装在一起,作为一个整体来处理。 函数与数据不分离

2.C++的类

 C++中的类是由C的结构演变而来的,结构是由其他类型相关元素组成的一种聚合数据类型。比如下面就是一个结构的定义:

Struct Time{

   int hour;

   int minute;

   int second;

};

程序可以直接访问结构中的元素,并可对其进行任意修改,比如:

Time timeObject;

TimeObject.hour = 200; //0 <= hour <= 23

这样就将一些无效值赋给了结构中的成员。这是C结构的缺点,而C++的类却很好的解决了这种问题。

 

class Time{                   //1

public:                       //2

   Time();                   //3

   void setTime(int, int, int);    //4

   void printMilitary();        //5

   void printStandard();        //6

private:                     //7

   int hour;                 //8

   int minute;               //9

   int second;               //10

};                         //11

 结构体和类的区别:结构体缺省的默认为public类型;而类中缺省的,默认为private类型

类不仅封装了数据成员,而且还封装了成员函数。“public”和“private”是成员访问说明符,3-6行属于public成员,8-10行属于private成员。public成员可以由类的使用者来调用,而private成员只能由成员函数和友元访问。我们一般将成员函数声明为public,供类的用户调用,所以public成员函数又叫类的接口。数据成员声明为private是为了不让类的用户对数据进行任意修改,甚至是错误的修改。大家有可能注意到了与类同名的Time()成员函数,它是类的构造函数,声明类对象时会自动调用,它用来初始化数据成员。

3析构函数和构造函数

什么是构造函数?通俗的讲,在类中,函数名和类名相同的函数称为构造函数。它的作用是在建立一个对象时,作某些初始化的工作(例如对数据赋予初值)。C++允许同名函数,也就允许在一个类中有多个构造函数。如果一个都没有,编译器将为该类产生一个默认的构造函数。

构造函数的重载:Test();  Test(int a );  Test(int a,int b);在调用的时候会根据所提供的不同的参数,而调用不同的构造函数

两个特殊的构造函数:1、默认无参构造函数2、默认拷贝构造函数但当你定义了这两个函数就不会默认提供了,默认拷贝构造函数就是简单的成员变量赋值

拷贝构造函数:当你不写拷贝构造函数的时候,会自动提供一个拷贝构造函数,但一旦你写了拷贝构造函数,系统就不会不会再提供拷贝构造函数了

eg:Test (Teat &t);拷贝构造函数

析构函数

当一个类的对象离开作用域时,析构函数将被调用(系统自动调用)。析构函数的名字和类名一样,不过要在前面加上 ~ 。对一个类来说,只能允许一个析构函数,析构函数不能有参数,并且也没有返回值。析构函数的作用是完成一个清理工作,如释放从堆中分配的内存。

一个类中可以有多个构造函数,但析构函数只能有一个,析构函数不能被重载。对象被析构的顺序,与其建立时的顺序相反,即后构造的对象先析构。

例如:~Test();

4this指针

是指向当前对象的指针或者说是当前对象的地址,通过this指针可以访问到当前对象的成员

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值