做搞机网站,搜索引擎营销成功的案例,个人简介免费模板下载,公司做网站的优势C中的类和结构体都是用于定义自定义数据类型的关键字。它们之间有很多相似之处#xff0c;但也有一些关键的区别。
1 主要区别
区别类结构体默认访问权限私有公有是否支持多态支持不支持是否支持继承支持支持是否可以定义构造函数和析构函数可以可以常用场景封装数据和行为中的类和结构体都是用于定义自定义数据类型的关键字。它们之间有很多相似之处但也有一些关键的区别。
1 主要区别
区别类结构体默认访问权限私有公有是否支持多态支持不支持是否支持继承支持支持是否可以定义构造函数和析构函数可以可以常用场景封装数据和行为实现面向对象编程封装简单的数据
2 代码示例
① 类
class Person {
public:Person() {} // 默认构造函数Person(const std::string name, int age) : name_(name), age_(age) {} // 带参数的构造函数const std::string name() const { return name_; } // 获取姓名void set_name(const std::string name) { name_ name; } // 设置姓名int age() const { return age_; } // 获取年龄void set_age(int age) { age_ age; } // 设置年龄private:std::string name_; // 姓名int age_; // 年龄
};int main() {Person person(John Doe, 30); // 使用带参数的构造函数创建对象std::cout person.name() is person.age() years old. std::endl;person.set_name(Jane Doe); // 使用公共成员函数设置姓名person.set_age(31); // 使用公共成员函数设置年龄std::cout person.name() is person.age() years old. std::endl;return 0;
}
类 的特点
默认访问权限为私有这意味着类中的成员变量和成员函数默认情况下只能在类内部访问外部无法直接访问。支持多态这意味着可以通过重载虚函数来实现不同的行为。可以定义构造函数和析构函数构造函数用于在创建对象时初始化成员变量析构函数用于在销毁对象时释放资源。常用场景封装数据和行为实现面向对象编程。
② 结构体
struct Point {int x; // x 坐标int y; // y 坐标
};int main() {Point point1 {1, 2}; // 使用初始化列表初始化结构体std::cout Point1: ( point1.x , point1.y ) std::endl;Point point2; // 默认初始化结构体point2.x 3; // 直接访问成员变量设置值point2.y 4;std::cout Point2: ( point2.x , point2.y ) std::endl;return 0;
}
结构体 的特点
默认访问权限为公有这意味着结构体中的成员变量和成员函数默认情况下可以在外部直接访问。不支持多态无法通过重载虚函数来实现不同的行为。可以定义构造函数和析构函数与类相同。常用场景封装简单的数据。
3 总结
类和结构体都是用于定义自定义数据类型的关键字。类和结构体的主要区别在于默认访问权限、是否支持多态以及常用场景。类通常用于封装数据和行为实现面向对象编程。结构体通常用于封装简单的数据。
建议
在需要封装数据和行为并实现面向对象编程时使用类。在需要封装简单的数据时使用结构体。