C++类和对象 基础部分
众所周知,C语言是一门面向过程的语言,面向过程简单来说就是直接使用各种函数和数据来解决一件事。而面向对象是谁来使用函数和数据去解决一件事。
C++是一门既可以面向对象也可以面向过程的语言,它能够兼容C语言,并且对C语言进行了许多优化升级,其中最为重要的便是类和对象。
在C++中,struct升级成了类class,类是一种自定义类型,由这种类型声明的变量被称为“对象”,并且在类中,不仅可以定义变量,也可以定义函数。
class和struct的区别
class具有三种访问限定符——公有,私有和保护,其中被保护和私有的成员我们无法在类外面进行访问。struct的默认访问限定符为public(公有),class默认为private(私有)。
为什么会出现类
首先得提到面向对象的三大特性:封装、继承、多态。C语言中数据和方法是分离的,任何人都可以访问和修改,并且函数也是能在随意的位置定义,安全性和可维护性都不高。在C++中,我们将类看作一个整体,函数和变量都被封装在类中,提高可维护性,而不想被随意访问的数据可以用访问限定符进行限制,提高了安全性。
其中,类的函数和变量被称为成员函数和成员变量。在类中定义的函数默认为内联函数,并且类本身不占用空间(但是会开辟一个字节不存储数据,用于占位)。
当成员函数的访问权限为公有时,该函数代码段全部保存在公共代码区,也不占用内存。如下图,date1和date2是两个不同的对象,它们所调用的Print函数访问相同地址。
并且,以下代码也可以运行:class Test { public: void Print() { cout << "Print()" << endl; } private: int a; }; int main() { Test* test1; test1 = nullptr; test1->Print(); //原因就在于成员函数在公共代码区,不需要解引用就可以找到该函数 }
由此可见,类的出现增加了代码的安全性,可维护性,提高了运行效率和空间利用率
标签:前篇,函数,对象,成员,C++,访问,限定符,class From: https://blog.csdn.net/m0_63816268/article/details/140378584