CPP的类和对象

简介: CPP的类和对象

CPP的类和对象

在C++中,类和对象是面向对象编程(OOP)的两个核心概念。类是对象的抽象描述,它定义了一组具有相同属性和行为的对象的模板。对象则是根据类创建的具体实例,它拥有类中定义的属性和方法。

类(Class)

类是一种用户自定义的数据类型,它封装了数据(成员变量或属性)和操作这些数据的方法(成员函数或行为)。类定义了对象的结构,包括对象可以包含的数据类型以及可以对这些数据执行的操作。

类的声明通常使用class关键字,后面跟着类名和一个花括号包围的类体。类体中包含类的成员变量(数据成员)和成员函数(方法)。

cpp复制代码

 

class MyClass {

 

public:

 

int myVariable; // 数据成员(属性)

 

 

 

// 成员函数(行为)

 

void myFunction() {

 

// 函数体

 

}

 

};

在这个例子中,MyClass是一个类,它有一个公共数据成员myVariable和一个公共成员函数myFunctionpublic关键字表示这些成员是公开的,可以在类的外部访问。

对象(Object)

对象是类的实例。通过类,我们可以创建多个具有相同属性和方法的对象。每个对象都是独立的,并拥有自己的存储空间来存储属性值。

创建对象通常使用类名,后跟一个或多个对象名,并使用对象初始化列表(如果有的话)。

cpp复制代码

 

MyClass obj1; // 创建一个MyClass类的对象obj1

 

MyClass obj2; // 创建另一个MyClass类的对象obj2

现在,obj1obj2都是MyClass的实例,它们都有myVariable这个属性以及myFunction这个方法。但是,它们各自的myVariable可以有不同的值,因为每个对象都有自己的存储空间。

访问对象的属性和方法

通过对象,我们可以访问其属性和调用其方法。如果属性和方法是公开的(使用public关键字声明),则可以直接通过对象访问它们。

cpp复制代码

 

obj1.myVariable = 10; // 设置obj1的myVariable属性值为10

 

obj1.myFunction(); // 调用obj1的myFunction方法

如果属性和方法是私有的(使用private关键字声明),则不能从类的外部直接访问它们,而需要通过类的公有成员函数来访问或修改。这提供了一种封装机制,隐藏了类的内部实现细节,只暴露必要的接口给类的使用者。

构造函数和析构函数

类还可以包含特殊类型的成员函数,称为构造函数和析构函数。构造函数用于初始化对象,而析构函数用于在对象销毁前执行清理操作。

cpp复制代码

 

class MyClass {

 

public:

 

MyClass() { // 构造函数

 

// 初始化代码

 

}

 

 

 

~MyClass() { // 析构函数

 

// 清理代码

 

}

 

 

 

// ... 其他成员 ...

 

};

当创建MyClass的对象时,构造函数会被自动调用。当对象的生命周期结束时(例如,对象离开其作用域或被删除时),析构函数会被自动调用。

类和对象是C++面向对象编程的基础,它们允许我们创建复杂且可维护的代码结构,通过封装、继承和多态等特性来实现更高级的功能。

 

目录
相关文章
|
2天前
|
编译器 C语言 C++
从C语言到C++⑤(第二章_类和对象_中篇)(6个默认成员函数+运算符重载+const成员)(上)
从C语言到C++⑤(第二章_类和对象_中篇)(6个默认成员函数+运算符重载+const成员)
4 0
|
2天前
|
编译器 C语言 C++
从C语言到C++⑤(第二章_类和对象_中篇)(6个默认成员函数+运算符重载+const成员)(下)
从C语言到C++⑤(第二章_类和对象_中篇)(6个默认成员函数+运算符重载+const成员)
6 1
|
2天前
|
编译器 C语言 C++
从C语言到C++⑤(第二章_类和对象_中篇)(6个默认成员函数+运算符重载+const成员)(中)
从C语言到C++⑤(第二章_类和对象_中篇)(6个默认成员函数+运算符重载+const成员)
5 0
|
8天前
|
C++
CPP的继承和多态
CPP的继承和多态
17 0
|
8天前
|
编译器 C++
CPP的函数重载
CPP的函数重载
27 0
|
8天前
|
C++
win32编程 -- 动态库中声明类
win32编程 -- 动态库中声明类
13 0
|
10月前
|
芯片
CPP2022-24-类与对象(下)
CPP2022-24-类与对象
65 0
|
10月前
|
10月前
CPP2022-26-多态专题(上)
CPP2022-26-多态专题
32 0
|
10月前
|
测试技术
CPP2022-26-多态专题(下)
CPP2022-26-多态专题(下)
81 0

热门文章

最新文章