笔记:(··········································)
目录
C++ 类与对象:
C++类定义:
定义C++对象:
访问数据成员:
this指针(借鉴):
Struct与Class的区别认识:
代码学习:
C++ 类与对象:
C++在C语言的基础上增加了面向对象编程,C++支持面向对象程序设计。类是C++的核心特性,通常被称为用户定义的类型。
类用于指定对象的形式,它包含了数据的表示法以及用于处理数据的方法。类中数据和方法称为类的成员。函数在一个类中被称为类的成员。
C++类定义:
定义一个类:本质上是定义一个数据类型的蓝图。这实际上并没有定义任何数据,但它定义了类的名称意味着什么,也就是说,它定义了类的对象包括了什么,以及可以在这个对象上执行那些操作。类定义是以关键字class开头,后跟类的名称。类的主体是包含在一对花括号中。类定义后必须跟着一个分号或一个声明列表。
定义C++对象:
类提供了对象的蓝图,所以基本上,对象时根据类来创建的。声明类的对象,就像声明基本类型的变量一样。(People p1;
People p2;)
访问数据成员:
类的对象的公共数据成员可以直接使用直接成员访问运算符(.)来访问。但是,私有的成员和受保护的成员不能直接使用直接成员访问运算符(.)来直接访问。(p1.age=15;p1.name="张三";)
C++类与对象中其他相关的概念:
this指针(借鉴):
关于C++中this指针的理解:当你进入一个房子后,你可以看到房子内的一切东西;但是你看不到房子全貌;对于类,你可以看到成员函数,成员变量,但是你看不到实例本身,但是应用this可以让我们看到这个实例本身。
我的理解:class类就好比这座房子,this就好比一把钥匙,通过钥匙打开这座房子的们,那么房子里面的东西就可以随意你取用了。
因为this作用域是在类的内部,自己声明一个类的时候,还不知道实例化对象的名字,所以用this来使用对象变量的自身。在非静态成员函数中,编译器在编译的时候加上this作为隐含形参,通过this来访问各个成员,即使你没有写上this指针。
Struct与Class的区别认识:
C++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,它已经获取了太多的功能呢。
struct能包含成员函数!struct能继承!struct能实现多态!
既然这些功能struct都能实现,那么它和class还能有什么区别?
最本质的一个区别就是默认的访问控制:默认的继承访问权限,struct是public,class是private.
另外,struct作为数据结构的实现体,它默认的数据访问控制是public,而class作为对象的实现体,它默认的成员变量访问控制是private.
做个总结:总之,struct与class并没有太大区别,功能作用都一样,但struct更适合看成是一个数据结构的实现体,class更适合看成是一个对象的实现体。(注意数据结构和对象的实现体)
代码学习:
#include <iostream> #include<string> using namespace std; struct Student{//结构体 int number; }; class People{//类 public: int age; string name; }; int main(){ //结构体对象 Student s1={123456};//结构体对象初始化实例对象 Student s2;//结构体实例对象 s2.number=1234;//结构体对象直接成员访问运算符(.)访问对象公共数据 //类对象 People p1;//类实例化对象 p1.age=15;//类对象直接成员访问运算符(.)访问对象公共成员 p1.name="张三"; People p2={18,"李四"};//类对象初始化实例对象 return 0; }