CPP 004 类和对象01(类的引入,定义,作用域,实例化)

文章讲述了C语言的面向过程编程思想,强调通过步骤解决问题,而C++的面向对象编程更关注对象和它们的交互。在C++中,类扮演了重要角色,可以定义变量和函数,具有访问限定符如public、private和protected,用于封装数据和方法。类的实例化允许创建对象并初始化。
摘要由CSDN通过智能技术生成

教授C语言的课本,名字叫做《面向过程的程序设计》,关注过程,分析出求解问题的步骤,通过函数调用来解决问题;C++则叫做《面向对象的程序设计》,更关注的是对象,将一件事拆分成为不同的对象,依靠对象之间的交互完成。

举一个例子,假设我们想要实现一个外卖系统。则有:

C语言(面向过程):解决的是下单,接单,配送这三个过程。

C++(面向对象):更加注重骑手,商家和客户三个类对象的相互关系。

一,类的引入

C语言的结构体中只可以定义变量;在C++中,结构体不仅可以定义变量,还可以定义函数。

并且结构体的定义,在C++中更喜欢用class来替代。

二,类的定义

class ClassName
{
    //类体:由成员函数和成员变量组成
};  //类后面一定要有分号!!

1,相关使用规则

class是定义类的关键字,ClassName是类的名字。

类中的元素称为类的成员:类中的数据叫做成员变量,类中的函数成为成员函数;建议类中的成员变量前面加一个 " _ "。

成员函数的定义和声明如果都放在类体中,则可能会被编译器当作内联函数。

2,访问限定符

C++通过将对象的属性和方法结合在一起,让对象更加完善,通过访问权限将接口提供给外部的客户使用。

访问限定符有public,private,protected三类。

public修饰的成员在类外可以直接被访问。

private和protected修饰的的成员在类外不能直接被访问

访问权限作用域是从该访问限定符出现的位置开始直到下一个访问限定符出现时为止。

class的默认访问权限是private,struct是public。

Q:class与struct的区别?

Ans:由于C++要兼容C,所以C++中的struct即可以当成结构体使用,也可以定义类。

          class的默认访问权限是private,struct是public。

3,封装

面向对象的三大特性:封装,继承,多态。

关于封装,可以简单理解成为:想给用户看到的就定义成为共有,不想给看到,就定义成为私有或保护。其是一种将数据和操作数据的方法结合起来,隐藏对象属性和实现细节,仅对外公开接口来和对象交互的方法。其本质是一种管理。

三,类的作用域

类定义了一个新的作用域,类的所有成员都在对应的作用域中。在类体外定义成员要使用作用域解析符(::)指明属于哪个类。

class Person
{
    char _name[20];
    int _age;
    char _sex[7];
};

//类体外的要指明属于哪个类
void Person::PrintInformation
{
    cout<<_name<<" "<<_age<<" "<<_sex<<endl;
}

四,类的实例化

用类创建对象的过程叫做类的实例化。

类犹如一个图纸。按照图纸,我们可以该处很多房子;同样的,按照类可以实例化出很多对象。

由于图纸不能住人,所以我们写出来的类是不能够存储数据的;但是房子可以住人,所以我们实例化出来的对象是可以进行初始化的。

//以下是一个用于定义人的类,包括名字,年龄和性别
class Person
{
    char _name[20];
    int _age;
    char _sex[7];
};

int main()
{
    //此时我们就依照Person类实例化除了一个对象Jack;
    Person Jack;
    //我们还可以按照类实例化出另外一些人
    Person Mary;
    Person Eric;
    return 0;
}
    

本节小结:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值