自学内容网 自学内容网

初认识类的定义

大家好下面是c++学习的第二天学习的--类的定义,允许我和大家分享一下。谢谢大家

文章目录


前言

在C++中,类(Class)是面向对象编程(OOP)的核心概念之一。它允许你将数据(属性)和操作这些数据的方法(成员函数)封装在一起。类定义了对象的蓝图,而对象则是根据这个蓝图创建的实例。

C++中的类定义通常包含以下几个部分:

  1. 访问说明符(如publicprotectedprivate):这些关键字用于指定类成员的访问级别。public成员可以从类的外部访问,protected成员在派生类(子类)中可访问,而private成员只能被类本身(以及友元)访问。

  2. 成员变量(也称为属性或字段):这些变量用于存储与对象相关的数据。在C++中,成员变量可以是任何类型,包括基本数据类型、指针、其他类的对象等。

  3. 成员函数(也称为方法):这些函数定义了对象可以执行的操作。成员函数可以访问和修改对象的成员变量。特殊的成员函数包括构造函数(用于初始化对象)、析构函数(用于清理资源)和拷贝构造函数/赋值运算符(用于管理对象之间的复制)。

  4. 静态成员:静态成员变量和静态成员函数属于类本身,而不是类的任何特定实例。所有对象共享同一个静态成员变量的副本,而静态成员函数则不能直接访问非静态成员变量(除非通过对象实例)。


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

一、类定义格式

class为定义类的关键字,Stack为类的名字,{}中为类的主体,注意类定义结束时后⾯分号不能省 略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的⽅法或 者成员函数。

• 为了区分成员变量,⼀般习惯上成员变量会加⼀个特殊标识,如成员变量前⾯或者后⾯加_或者m 开头,注意C++中这个并不是强制的,只是⼀些惯例,具体看公司的要求。

• C++中struct也可以定义类,C++兼容C中struct的⽤法,同时struct升级成了类,明显的变化是 struct中可以定义函数,⼀般情况下我们还是推荐⽤class定义类。

• 定义在类⾯的成员函数默认为inline。

 

#define MAX_STACK_SIZE 1000 
#include <iostream>
using namespace std;
 // C++
升级
struct
升级成了类
 
// 1 类⾥⾯可以定义函数
 
// 2 struct名称就可以代表类型
 
// C++兼容C中struct的⽤法
 
typedef struct ListNodeC
 {
 struct ListNodeC* next;
 int val;
 }LTNode;


 // 不再需要typedef,ListNodeCPP就可以代表类型

class Stack
{
public :
//成员函数
int  ADD(int a, int b)
{
return a + b;
}

double ADD(double a, double b)
{
return a + b;
}
void strcp(char a, char b)
{
a = b;
}
private:
//成员变量
int a;
char b;
double c;
int* ap;
};//注意分号

class Data
{
public:
void Init(int year, int month, int day)
{
_year = year;
_month = month;
_day = day;
}
private:
int _year;
int _month;
int _day;
};
int main()
{
cout << a << " " << b << "  " << c << endl;
std::cout << a << " " << b << "  " << c << endl;
using namespace std;
return 0;
}

二、访问限定符

• C++⼀种实现封装的⽅式,⽤类将对象的属性与⽅法结合在⼀块,让对象更加完善,通过访问权限 选择性的将其接⼝提供给外部的⽤⼾使⽤。

• public修饰的成员在类外可以直接被访问;protected和private修饰的成员在类外不能直接被访 问,protected和private是⼀样的,以后继承章节才能体现出他们的区别。

• 访问权限作⽤域从该访问限定符出现的位置开始直到下⼀个访问限定符出现时为⽌,如果后⾯没有 访问限定符,作⽤域就到}即类结束。

• class定义成员没有被访问限定符修饰时默认为private,struct默认为public。

• ⼀般成员变量都会被限制为private/protected,需要给别⼈使⽤的成员函数会放为public。

三,类域

• 类定义了⼀个新的作⽤域,类的所有成员都在类的作⽤域中,在类体外定义成员时,需要使⽤::作 ⽤域操作符指明成员属于哪个类域。

• 类域影响的是编译的查找规则,下⾯程序中Init如果不指定类域Stack,那么编译器就把Init当成全 局函数,那么编译时,找不到array等成员的声明/定义在哪⾥,就会报错。指定类域Stack,就是知 道Init是成员函数,当前域找不到的array等成员,就会到类域中去查找


总结

感谢大家的观看。


原文地址:https://blog.csdn.net/2302_80705024/article/details/142359481

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!