1.结构体到类
定义:
结构体:是由一系列具有相同类型或不同类型的数据构成的数据集合,也叫结构。
类:一种用户自定义的数据类型,用于封装数据和相关操作
struct Animal {
int weight;
};
class Animal {
public:
int weight;
};
结构体和类的区别:主要在于默认的访问修饰符不同。
结构体中的成员变量和成员函数默认是公共的,
类中的成员变量和成员函数默认是私有的(private)。
结构体可以嵌套在其他结构体、类或命名空间中,形成更复杂的数据结构体。
2.类与对象
定义:
类:具有相同特征(属性)和行为(功能)的对象的抽象
对象:类的具体实现
举例:动物(类) 猫🐱(对象)
#include<iostream>
class Animal
{
public:
void eat() {
std::cout << "动物吃" << std::endl;
}
void breath() {
std::cout << "动物呼吸" << std::endl;
}
};
int main() {
Animal cat;
cat.eat();
return 0;
}
3.构造函数和析构函数
定义:
构造函数:一种特殊的成员函数,在创建对象时被调用,用于初始化对象的数据成员。
构造函数最重要的作用是创建对象本身,c++规定,每个类必须有一个构造函数,没有构造函数,则c++提供一个默认的构造函数(由c++编译器提供),这个默认的构造函数是一个不带参数的构造函数,只负责创建对象,不做任何初始化工作。
析构函数:特殊成员函数,在对象销毁时别调用,用于清理对象占用的资源。
析构函数是“反向”的构造函数,不允许有返回值,不允许带参数,一个类只能有一个析构函数。
程序调用delete删除时,析构函数被调用。
可以在构造函数中初始化对象的某些成员变量,给其分配内存空间(堆内存),在析构函数中释放对象运行期间所申请的资源。
class Animal {
public:
int weight;
Animal() {};//默认构造函数
~Animal(){};//析构函数
Animal(int weight) { //有参构造函数
this->weight = weight;
}
void printData() {
std::cout << " 动物的体重:" << weight << std::endl;
}
};
int main() {
Animal cat(13);
cat.printData();
return 0;
}