类的认识及使用

云惠网小编 2021年10月11日21:18:34
评论
1710字阅读5分42秒
摘要

类类的使用引用类的定义struct和class的区别封装类的作用域类的实例化类的使用引用C++兼容C结构体的语法C++中的struct已经不仅仅是结构体,struct已经同时升级成类。类的定义class className{ // 类体:由成员函数和成员变量组成 }; // 一定要注意后面的分号class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号。类中的元素称为类的成员:类中的数据称为类的属性或者成员变量; 类中的函数称为类的

广告也精彩

https://blog.csdn.net/AI_ELF/article/details/117877990?spm=1001.2014.3001.5501

类的定义

class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号。
类中的元素称为类的成员:类中的数据称为类的属性或者成员变量; 类中的函数称为类的方法或者成员函数。
struct可以定义类,但在C++中更喜欢用class来代替

上方代码改正:

类的实例化

封装

类的认识及使用
总结:

C语言面向过程——数据和方法是分离的
C++面向对象——数据和方法是封装在一起的

类的认识及使用
类实例化出对象就像现实中使用建筑设计图建造出房子,类就像是设计图,只设计出需要什么东西,但是并没有实体的建筑存在,同样类也只是一个设计,实例化出的对象才能实际存储数据,占用物理空间。

#define _CRT_SECURE_NO_WARNINGS 1
#include"Queue.h"
void Queue::QueueInit()// 这里需要指定QueueInit是属于Queue这个类域
{
}
void Queue::QueuePush(int x)
{
}
void Queue::QueuePop()
{
}
  • C++实现封装的方式:用类将对象的属性与方法结合在一块,让对象更加完善,通过访问权限选择性的将其接口提供给外部的用户使用。
  • 访问限定符:public(公有)、protected(保护)、private(私有)
  • public修饰的成员在类外可以直接被访问
  • protected和private修饰的成员在类外不能直接被访问(此处protected和private是类似的)
  • 访问权限作用域从该访问限定符出现的位置开始直到下一个访问限定符出现时为止
  • class的默认访问权限为private,struct为public(因为struct要兼容C)

struct和class的区别

类的作用域

在这里插入图片描述

  • 类中的成员函数在声明和定义分离时需要使用 :: 作用域解析符指明成员属于哪个类域。
  • 短小的成员函数,直接在类里面定义,直接被看成内联函数inline
  • 长的函数,声明和定义分离

在这里插入图片描述

在这里插入图片描述

知识点:

总结:

改正:将Queue.cpp文件

  • 类的使用
    • 引用
    • 类的定义
    • struct和class的区别
    • 封装
    • 类的作用域
    • 类的实例化
    • 计算类对象的大小

引用

类的认识及使用
总结:

计算类对象的大小

结构体内存对齐规则:

在这里插入图片描述

  • 类的定义和设计就体现了封装
  • 面向对象的三大特性:封装继承多态(最为出名的)、抽象、反射(Java)。
  • 封装:将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现细节,仅对外公开接口来和对象进行交互。
  • 封装本质是一种管理。

类的认识及使用
总结:

  • 计算类型大小或者是类对象,只考虑成员变量,因为对象中,只存了成员变量,没有存成员函数
  • 对于类对象:只保存成员变量,成员函数存放在公共的代码段。
  • 一个类的大小,实际就是该类中”成员变量”之和,当然也要进行内存对齐。
  • 注意空类的大小,空类比较特殊,编译器给了空类一个字节来唯一标识这个类。
  • 如果一个类没有对象,那么它的对象需要给1byte进行占位,标识对象存在这1byte不存储有效数据
    在这里插入图片描述

类的使用

class stack
{
public:   //公有(可在类外面直接访问)
void StackInit()
{
}
void StackPush(int x)
{
}
private:    //私有(不可在类外面直接访问)
int* a;
int top;
int capacity;
};
int main()
{
stack st;
st.StackInit();
st.StackPush(1);
return 0;
}
  • 用类类型创建对象的过程,称为类的实例化
  • 类只是一个模型一样的东西,限定了类有哪些成员,定义出一个类并没有分配实际的内存空间来存储它
  • 一个类可以实例化出多个对象,实例化出的对象 占用实际的物理空间,存储类成员变量

C++兼容C结构体的语法
C++中的struct已经不仅仅是结构体,struct已经同时升级成类。

class className
{
// 类体:由成员函数和成员变量组成
}; // 一定要注意后面的分号

本文转自 https://blog.csdn.net/AI_ELF/article/details/120670969

腾讯云618
云惠网小编
自己开发的音乐视频网站 java

自己开发的音乐视频网站

1.需求开发基于B/S模式的web音乐网站,要包含音乐和mv。为用户提供一个友好的视频和音乐播放环境,包含了大量最新一代的视频和音乐,同时它还具有评论收藏功能,方便以后注册的用户观...
腾讯云618

发表评论