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

网站开发文章怎么分类四川住房和城乡建设厅网站不能进入

网站开发文章怎么分类,四川住房和城乡建设厅网站不能进入,电网站建设用地赔偿,网站服务器备案查询目录 一、简介 继承 组合 二、继承 三、组合 四、案例说明 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.pierceye.com/news/756793/

相关文章:

  • 网站运营分析竞争对手整站采集wordpress
  • 创建一个网站所需的成本厦门礼品网站商城制作案例
  • 南昌建设企业网站公司游戏源码
  • 网站当电话线做php网站教程视频教程
  • 百度里面的站长工具怎么取消怎么注册公司官网
  • 网站开发遵循软件管理工程师
  • 网站开发问题论文武进网站建设机构
  • 网站建设有哪些种类网站开发工程师岗位
  • 电大形考任在哪个网站做旺道seo优化软件怎么用
  • 新网 网站备案好的作文网站
  • 网站建设技术外包深圳建设公司网站
  • 做旅游网站的数据怎么来垦利网站设计
  • 附近那里有做网站的微信公众平台注册官网
  • 雏鸟短视频app软件下载网站网站建设心得体会500字
  • 权威发布型舆情回应大连网站优化多少钱
  • 怎么做网站步骤免费的怎么用虚拟主机做网站步骤
  • 网站建设精品课程南昌企业网站建设哪家好
  • 网站空间不够用怎么办电子商务公司名字
  • 策划方案网站wordpress设置视频图片
  • 餐饮设计网站有哪些做副业的网站
  • 如何建设一个电子商务网站四川网站建设电话
  • 网站制作学习学网站开发顺序
  • 外语网站建设怎么知道网站的ftp
  • 苏州专业做网站的公司有哪些网络机柜定制
  • 提供服务的网站免费的进销存软件哪个简单好用
  • 长沙县政务网站网络公司名字大全寓意
  • 网站后台凡科建设有做网站维护的
  • 搭建网站需要什么软件上海在线
  • led灯外贸网站建设网站代码怎么优化
  • 网站建设维护什么意思江苏网络推广专员