当前位置: 首页 > news >正文

制作网站软件app单页设计图片模板

制作网站软件app,单页设计图片模板,网页设计个人简历实训报告,熊掌号wordpress目录 一、简介 继承 组合 二、继承 三、组合 四、案例说明 4.1一个电子商务系统 4.1.1继承方式 在上述代码中#xff0c;Order类继承自User类。通过继承#xff0c;Order类获得了User类的成员函数和成员变量#xff0c;并且可以添加自己的特性。我们重写了displayI…  目录 一、简介 继承 组合 二、继承 三、组合 四、案例说明 4.1一个电子商务系统 4.1.1继承方式 在上述代码中Order类继承自User类。通过继承Order类获得了User类的成员函数和成员变量并且可以添加自己的特性。我们重写了displayInfo()函数以便在Order类中显示订单相关信息。4.1.2组合方式 一、简介 当涉及到代码重用时继承和组合是两种常见的机制。下面将更详细地介绍它们的特点、使用方式以及各自的优缺点。 继承 特点继承是一种创建新类的方式通过继承已有类的属性和方法来构建新类。在继承关系中子类也称为派生类继承了父类也称为基类的成员变量和成员函数并且可以添加自己的特性。使用方式在C中可以使用class或struct关键字定义类在定义派生类时使用冒号:指定继承关系。在继承中派生类可以访问父类的公有成员但不能访问私有成员。优点 代码重用通过继承可以重用基类的代码减少重复编写相似代码的工作量。层次结构继承可以创建一个层次结构通过将类组织成父子关系可以更好地组织和管理代码。缺点 紧耦合继承会在派生类和基类之间创建紧密的依赖关系如果基类发生变化可能会影响到所有的派生类。多继承问题多继承可能引发命名冲突和复杂性增加的问题需要小心处理。 组合 特点组合是一种通过在一个类中包含另一个类的对象来实现代码重用的机制。在组合关系中一个类称为组合类包含另一个类称为成员类的对象作为成员变量通过调用成员对象的方法来实现自己的功能。使用方式在C中可以在组合类中声明成员对象作为成员变量并在组合类的方法中调用成员对象的方法来实现功能。优点 松耦合组合关系比继承关系更加松散类之间的依赖关系相对较弱修改一个类不会影响到其他类。灵活性组合允许动态地改变成员对象可以在运行时替换成员对象提供更大的灵活性。缺点 冗余代码组合可能导致一些重复代码需要在组合类中转发成员对象的方法。对象管理组合类需要负责创建和管理成员对象增加了额外的工作量。 在选择使用继承还是组合时需要考虑以下因素 类的关系如果存在一种“is-a”的关系即派生类是基类的一种特殊形式可以选择使用继承。例如Dog可以被视为Animal的一种特殊类型。代码重用程度如果需要重用大量基类代码可以选择继承。继承允许派生类直接使用基类的功能减少了代码编写的工作量。灵活性要求如果需要更灵活的类关系和低耦合度可以选择组合。组合允许动态替换成员对象提供更大的灵活性。 二、继承 继承是一种通过创建一个新类来继承已有类的属性和方法的机制。在继承关系中子类派生类可以继承父类基类的成员变量和成员函数并且可以添加自己的特性。下面是一个简单的示例 #include iostreamclass Animal { public:void eat() {std::cout Animal is eating. std::endl;} };class Dog : public Animal { public:void bark() {std::cout Dog is barking. std::endl;} };int main() {Dog dog;dog.eat(); // 输出 Animal is eating.dog.bark(); // 输出 Dog is barking.return 0; }在这个示例中我们定义了一个基类Animal和一个派生类Dog。派生类Dog继承了基类Animal的eat方法并添加了自己的bark方法。通过创建Dog对象我们可以调用继承的eat方法和派生类自己的bark方法。 优点 代码重用继承允许派生类重用基类的代码避免了重复编写相似的代码。层次结构继承可以创建一个层次结构通过将类组织成父子关系可以更好地组织和管理代码。 缺点 紧耦合继承会在派生类和基类之间创建紧密的依赖关系如果基类发生变化可能会影响到所有的派生类。多继承问题多继承可能会引发命名冲突和复杂性增加的问题。 三、组合 组合是一种通过在一个类中包含另一个类的对象来实现代码重用的机制。在组合关系中一个类组合类包含另一个类成员类的对象作为成员变量。下面是一个示例 #include iostreamclass Engine { public:void start() {std::cout Engine is starting. std::endl;} };class Car { private:Engine engine;public:void start() {engine.start();std::cout Car is starting. std::endl;} };int main() {Car car;car.start(); // 输出 Engine is starting. 和 Car is starting.return 0; }在这个示例中我们定义了一个成员类Engine和一个组合类Car。组合类Car包含一个Engine对象作为成员变量并通过调用Engine对象的方法实现自己的功能。 优点 松耦合组合关系比继承关系更加松散类之间的依赖关系相对较弱修改一个类不会影响到其他类。灵活性组合允许动态地改变成员对象可以在运行时替换成员对象提供更大的灵活性。 缺点 冗余代码组合可能导致一些重复代码需要在组合类中转发成员对象的方法。对象管理组合类需要负责创建和管理成员对象增加了额外的工作量。 结论 继承和组合都是C中常用的代码重用机制它们各有优缺点。在选择使用哪种机制时需要根据具体的需求和设计要求进行权衡。如果需要创建一个层次结构或者重用大量基类代码可以选择继承如果需要更灵活的类关系和低耦合度可以选择组合。重要的是根据实际情况选择适合的代码重用方式并结合良好的设计原则来编写高质量的代码。 四、案例说明 4.1一个电子商务系统 其中有两个重要的类User用户和Order订单。用户可以下订单并且一个用户可以有多个订单因此User类和Order类之间存在一种关系。我们将使用继承和组合两种方式来设计这两个类之间的关系。 4.1.1继承方式 #include iostream #include string// 用户类 class User { private:std::string name; public:User(const std::string name) : name(name) {}void setName(const std::string newName) {name newName;}std::string getName() const {return name;}virtual void displayInfo() const {std::cout User: name std::endl;} };// 订单类继承自用户类 class Order : public User { private:std::string orderId; public:Order(const std::string name, const std::string orderId): User(name), orderId(orderId) {}void setOrderId(const std::string newOrderId) {orderId newOrderId;}std::string getOrderId() const {return orderId;}void displayInfo() const override {std::cout User: getName() , OrderId: orderId std::endl;} };int main() {User user(John);Order order(John, 12345);user.displayInfo();order.displayInfo();return 0; }在上述代码中Order类继承自User类。通过继承Order类获得了User类的成员函数和成员变量并且可以添加自己的特性。我们重写了displayInfo()函数以便在Order类中显示订单相关信息。4.1.2组合方式 #include iostream #include string// 用户类 class User { private:std::string name; public:User(const std::string name) : name(name) {}void setName(const std::string newName) {name newName;}std::string getName() const {return name;}void displayInfo() const {std::cout User: name std::endl;} };// 订单类组合了用户类对象 class Order { private:std::string orderId;User user; public:Order(const std::string name, const std::string orderId): user(name), orderId(orderId) {}void setOrderId(const std::string newOrderId) {orderId newOrderId;}std::string getOrderId() const {return orderId;}void displayInfo() const {std::cout User: user.getName() , OrderId: orderId std::endl;} };int main() {User user(John);Order order(John, 12345);user.displayInfo();order.displayInfo();return 0; }在这个例子中Order类包含了一个User类的对象作为成员变量。通过组合Order类可以调用User类的方法来处理用户相关的操作。 总结 在这个案例中我们展示了继承和组合两种不同的代码重用方式。继承适用于存在是一种关系的类并且可以直接使用基类的成员函数和成员变量。组合适用于存在有一个关系的类其中一个类作为另一个类的成员变量通过调用成员对象的方法来实现功能。选择使用继承还是组合取决于具体的需求和设计目标需要权衡各自的优缺点来做出决策。
http://www.hkea.cn/news/14420172/

相关文章:

  • 网站群管理平台建设视频网站开发背景
  • 公司网站实名认证网站建设成本
  • 做外贸哪里网站比较好半年工作总结
  • wordpress地址站点地址网站模板编辑器
  • 网站建设电话话术wordpress用什么主题
  • 粉红色网站欣赏免费ppt模板公众号
  • 网站备案有什么用兰州医院网站建设
  • 茂名网站建设维护小米开发者模式
  • 网站建设保障机制沈阳世纪兴网站制作公司
  • 查网站域名备案wordpress怎么能把文章采集
  • 永兴网站开发wordpress数据库加密
  • 江门建站网站模板长沙网页设计培训班哪家好
  • 网站怎么做才不会被封网站开发综合实训总结
  • 电子商务网站设计代做记账公司
  • 哪个浏览器任何网站都可以访问有什么推广的平台
  • 网站展示英文都用什么字体不属于营销型网站的特点
  • 学院网站建设时间控制变更申请表将page转换为wordpress
  • 河南省建设厅门户网站装修网站建设优缺点
  • 安平县外贸网站建设仿腾讯网站源码
  • 双鸭山住房和城乡建设局网站十大外贸电商平台有哪些
  • 学习网站建设好找工作吗网页视频怎么下载到本地视频手机
  • 商城网站建设需求一个网页大概多少钱
  • 进入网站空间拼车网站的建设雨实现
  • 太原制作网站国家房管局官网查询系统
  • 镇江网站推广排名永济做网站单价
  • 网站快速备案公司制作二维码免费软件
  • 给企业做网站的公司有哪些wordpress显示未开启stmp服务
  • 禁忌网站安徽省建设干校网站
  • 网站免费建站 图标一个网站完整的html代码
  • 网站不备案会有什么影响丝瓜app官网下载安装io