【C++】类的简介

简介: 【C++】类的简介

前言

今天,我们学类。类是C++独有的东西,他是C语言没有的。


提示:以下是本篇文章正文内容,下面案例可供参考

一、类的理论知识

1.类和面向对象的关系

1.面向对象是一种编程思想

2.类是一个语法

3.意义:面向对象的编程思想,要以这个语法(类)来实现。
大家暂时不要强行理解面向对象这种思想,因为这个理解是要基于很多项目经验的,不是一朝一夕就能领悟的。学好类就行了

2.类的定义

定义:具有相同属性和行为的对象的集合(人类,就是一个人的集合,小华就是这个类的一个具体个体,或者叫对象)

二、类实例

1.类声明

类的关键字为class

class 类名
{
};

他的声明方式和struct的方式基本一样,只不过struct换成了class

2.类声明对象

1.类名 + 变量名;

2.类名 + 指针 = new 类;(类->类名)

    CPeople op;
    CPeople* op = new CPeople;

3.成员的调用

1.栈区普通对象

对象.成员

CPeople.Text;

2.堆区指针对象

对象->成员

op1->Test();

delete op1;

3.类成员的访问

类的所有成员(除了个别特殊的成员,如static成员),必须通过对象访问

4.访问修饰符

通过刚刚的这些操作。我们成功的发现访问不了!“怎么回事,难道是我错了吗?”

其实在类中,我们还少了一个东西,那就是访问修饰符。

1.public

类外可见,类内也可见

C++的结构体默认是public(如果你不改的话)

2.private

类内可见(只有类里面的成员才能使用他)

你不写修饰符,他默认的就是private

3.protected

类内以及子类可见

5.友元

含义:友元起始就是在修饰符为pricate,protected时,让一个函数可以访问里面的成员

他的关键字为friend.

friend void fun();
friend int main();

他在类内的操作为定义。

自定义的函数就需要在类外声明。但是main函数不需要,因为你一开始就必须声明main函数。

1.友元的特点与缺点

1.不受访问修饰符影响

2.可以有多个友元

3.缺点:破坏了类的封装性,不是迫不得已不要用

总结

提示:这里对文章进行总结:

以上就是今天要讲的内容,本文仅仅只是对类class 做了一个介绍

相关文章
|
10天前
|
编译器 C++
C++ 类构造函数初始化列表
构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式。
55 30
|
24天前
|
存储 编译器 C++
C ++初阶:类和对象(中)
C ++初阶:类和对象(中)
|
1月前
|
存储 安全 编译器
【C++】类和对象(下)
【C++】类和对象(下)
【C++】类和对象(下)
|
24天前
|
C++
C++(十八)Smart Pointer 智能指针简介
智能指针是C++中用于管理动态分配内存的一种机制,通过自动释放不再使用的内存来防止内存泄漏。`auto_ptr`是早期的一种实现,但已被`shared_ptr`和`weak_ptr`取代。这些智能指针基于RAII(Resource Acquisition Is Initialization)原则,即资源获取即初始化。RAII确保对象在其生命周期结束时自动释放资源。通过重载`*`和`->`运算符,可以方便地访问和操作智能指针所指向的对象。
|
24天前
|
C++
C++(十六)类之间转化
在C++中,类之间的转换可以通过转换构造函数和操作符函数实现。转换构造函数是一种单参数构造函数,用于将其他类型转换为本类类型。为了防止不必要的隐式转换,可以使用`explicit`关键字来禁止这种自动转换。此外,还可以通过定义`operator`函数来进行类型转换,该函数无参数且无返回值。下面展示了如何使用这两种方式实现自定义类型的相互转换,并通过示例代码说明了`explicit`关键字的作用。
|
24天前
|
存储 设计模式 编译器
C++(十三) 类的扩展
本文详细介绍了C++中类的各种扩展特性,包括类成员存储、`sizeof`操作符的应用、类成员函数的存储方式及其背后的`this`指针机制。此外,还探讨了`const`修饰符在成员变量和函数中的作用,以及如何通过`static`关键字实现类中的资源共享。文章还介绍了单例模式的设计思路,并讨论了指向类成员(数据成员和函数成员)的指针的使用方法。最后,还讲解了指向静态成员的指针的相关概念和应用示例。通过这些内容,帮助读者更好地理解和掌握C++面向对象编程的核心概念和技术细节。
|
1月前
|
存储 算法 编译器
[C++] STL简介
[C++] STL简介
23 1
|
1月前
|
存储 算法 编译器
c++--类(上)
c++--类(上)
|
1月前
|
编译器 C++
virtual类的使用方法问题之C++类中的非静态数据成员是进行内存对齐的如何解决
virtual类的使用方法问题之C++类中的非静态数据成员是进行内存对齐的如何解决
|
1月前
|
编译器 C++
virtual类的使用方法问题之静态和非静态函数成员在C++对象模型中存放如何解决
virtual类的使用方法问题之静态和非静态函数成员在C++对象模型中存放如何解决