c++类和对象一对象特性一成员变量和成员函数分开存储

简介: c++类和对象一对象特性一成员变量和成员函数分开存储

在C++中,类的成员变量和成员函数是分开存储的。成员变量是类的属性,它们代表了类的状态或数据;而成员函数是类的行为,它们定义了类可以执行的操作。在内存中,成员变量通常存储在类的实例(对象)中,而成员函数则存储在代码段中,并且与类关联。

 

成员变量

成员变量是类的属性,它们与类的每个对象相关联。当创建类的对象时,会在堆内存中为该对象的成员变量分配空间。每个对象都有自己独立的成员变量副本,这意味着修改一个对象的成员变量不会影响到其他对象的成员变量。

 

成员函数

成员函数是类的行为,它们定义了类可以执行的操作。成员函数通常存储在代码段中,并且与类关联。无论创建多少个类的对象,成员函数只存储一次。当调用对象的成员函数时,会传递对象的指针(或引用)作为隐式参数,以便函数能够访问和修改对象的成员变量。

 

示例代码

下面是一个简单的C++类示例,演示了成员变量和成员函数的分开存储:

image.png

image.png

在上面的代码中,Person 类有两个成员变量:name 和 age,以及一个成员函数 display()。当创建 person1 和 person2 这两个对象时,它们的成员变量 name 和 age 分别在各自的堆内存空间中存储。而成员函数 display() 则只存储一次在代码段中,并且可以被所有 Person 类的对象共享。

 

成员变量和成员函数的访问

成员变量通常通过成员函数进行访问和修改,以封装类的内部状态。这样做可以提供更好的数据安全性,防止外部代码直接访问和修改成员变量,从而避免潜在的问题。

 

在上面的示例中,display() 成员函数可以访问私有成员变量 name 和 age,并将它们打印到控制台。由于 name 和 age 是私有的,因此外部代码不能直接访问它们,只能通过 display() 成员函数间接访问。

 

总结

C++中的类和对象通过分开存储成员变量和成员函数来实现封装性。成员变量存储在对象的实例中,而成员函数存储在代码段中,并且与类关联。这种分开存储的方式使得每个对象都有自己独立的成员变量副本,而成员函数则可以被所有对象共享。通过成员函数访问和修改成员变量,可以提供更好的数据安全性。

目录
相关文章
|
6天前
|
存储 编译器 C++
【c++】类和对象(中)(构造函数、析构函数、拷贝构造、赋值重载)
本文深入探讨了C++类的默认成员函数,包括构造函数、析构函数、拷贝构造函数和赋值重载。构造函数用于对象的初始化,析构函数用于对象销毁时的资源清理,拷贝构造函数用于对象的拷贝,赋值重载用于已存在对象的赋值。文章详细介绍了每个函数的特点、使用方法及注意事项,并提供了代码示例。这些默认成员函数确保了资源的正确管理和对象状态的维护。
29 4
|
7天前
|
存储 编译器 Linux
【c++】类和对象(上)(类的定义格式、访问限定符、类域、类的实例化、对象的内存大小、this指针)
本文介绍了C++中的类和对象,包括类的概念、定义格式、访问限定符、类域、对象的创建及内存大小、以及this指针。通过示例代码详细解释了类的定义、成员函数和成员变量的作用,以及如何使用访问限定符控制成员的访问权限。此外,还讨论了对象的内存分配规则和this指针的使用场景,帮助读者深入理解面向对象编程的核心概念。
25 4
|
30天前
|
存储 编译器 对象存储
【C++打怪之路Lv5】-- 类和对象(下)
【C++打怪之路Lv5】-- 类和对象(下)
27 4
|
30天前
|
存储 安全 C++
【C++打怪之路Lv8】-- string类
【C++打怪之路Lv8】-- string类
21 1
|
30天前
|
编译器 C语言 C++
【C++打怪之路Lv4】-- 类和对象(中)
【C++打怪之路Lv4】-- 类和对象(中)
23 4
|
1月前
|
存储 编译器 C++
【C++类和对象(下)】——我与C++的不解之缘(五)
【C++类和对象(下)】——我与C++的不解之缘(五)
|
1月前
|
编译器 C++
【C++类和对象(中)】—— 我与C++的不解之缘(四)
【C++类和对象(中)】—— 我与C++的不解之缘(四)
|
1月前
|
编译器 C语言 C++
C++入门3——类与对象2-2(类的6个默认成员函数)
C++入门3——类与对象2-2(类的6个默认成员函数)
23 3
|
1月前
|
C++
C++番外篇——对于继承中子类与父类对象同时定义其析构顺序的探究
C++番外篇——对于继承中子类与父类对象同时定义其析构顺序的探究
53 1
|
1月前
|
编译器 C语言 C++
C++入门4——类与对象3-1(构造函数的类型转换和友元详解)
C++入门4——类与对象3-1(构造函数的类型转换和友元详解)
19 1