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

网站各类备案wordpress twentyten

网站各类备案,wordpress twentyten,茂名网站建设制作,邢台市网站开发公司有哪些一、继承的基本概念 继承是 C 中的一个重要特性#xff0c;它允许一个类#xff08;派生类或子类#xff09;继承另一个类#xff08;基类或父类#xff09;的属性和方法。这样可以实现代码的重用和建立类之间的层次关系。 #include iostream// 基类 class Base…一、继承的基本概念 继承是 C 中的一个重要特性它允许一个类派生类或子类继承另一个类基类或父类的属性和方法。这样可以实现代码的重用和建立类之间的层次关系。 #include iostream// 基类 class Base { public:void show() {std::cout This is the Base class. std::endl;} };// 派生类 class Derived : public Base { public:void display() {std::cout This is the Derived class. std::endl;} };int main() {Derived d;d.show(); // 调用基类的方法d.display(); // 调用派生类的方法return 0; }解释 基类Base 类包含一个公共成员函数 show()。派生类Derived 类继承自 Base 类使用 public 继承。它不仅可以访问自己的成员函数 display()还可以访问基类的 show() 函数。 二、图形对象的继承层次 假设我们要创建一个图形对象的继承层次可以从一个基类 Shape 开始然后派生出具体的形状类如 Circle、Rectangle 等。 #include iostream #include cmathclass Shape { public:virtual double area() 0; // 纯虚函数使 Shape 成为抽象类virtual void display() {std::cout This is a shape. std::endl;} };class Circle : public Shape { private:double radius; public:Circle(double r) : radius(r) {}double area() override {return 3.14159 * radius * radius;}void display() override {std::cout This is a circle with radius radius std::endl;} };class Rectangle : public Shape { private:double length, width; public:Rectangle(double l, double w) : length(l), width(w) {}double area() override {return length * width;}void display() override {std::cout This is a rectangle with length length and width width std::endl;} };int main() {Circle c(5.0);Rectangle r(4.0, 6.0);Shape* s1 c;Shape* s2 r;s1-display();std::cout Area of circle: s1-area() std::endl;s2-display();std::cout Area of rectangle: s2-area() std::endl;return 0; }解释 抽象类Shape 类包含一个纯虚函数 area()使其成为抽象类不能被实例化。派生类Circle 和 Rectangle 继承自 Shape并实现了 area() 和 display() 函数。多态性通过基类指针指向派生类对象可以调用派生类的 display() 和 area() 函数实现多态性。 三、表达式的类层次 对于表达式的类层次可以创建一个基类 Expression然后派生出不同类型的表达式类如 BinaryExpression、UnaryExpression 等。 #include iostreamclass Expression { public:virtual double evaluate() 0; // 纯虚函数virtual void display() 0; };class Constant : public Expression { private:double value; public:Constant(double v) : value(v) {}double evaluate() override {return value;}void display() override {std::cout value;} };class BinaryExpression : public Expression { protected:Expression* left;Expression* right; public:BinaryExpression(Expression* l, Expression* r) : left(l), right(r) {}~BinaryExpression() {delete left;delete right;} };class Addition : public BinaryExpression { public:Addition(Expression* l, Expression* r) : BinaryExpression(l, r) {}double evaluate() override {return left-evaluate() right-evaluate();}void display() override {left-display();std::cout ;right-display();} };int main() {Expression* e1 new Constant(5);Expression* e2 new Constant(3);Expression* sum new Addition(e1, e2);sum-display();std::cout sum-evaluate() std::endl;delete sum;return 0; }解释 基类Expression 是一个抽象类包含纯虚函数 evaluate() 和 display()。派生类 Constant 表示常量表达式存储一个值。BinaryExpression 是一个抽象类包含左右操作数。Addition 是 BinaryExpression 的派生类实现加法操作。 四、解析表达式 解析表达式可以使用递归下降解析器结合表达式的类层次结构。例如解析 3 5 这样的表达式 可以先创建 Constant 对象表示 3 和 5然后创建 Addition 对象表示 3 5。 五、多重继承 多重继承允许一个类继承自多个基类。 #include iostreamclass Base1 { public:void show1() {std::cout This is Base1. std::endl;} };class Base2 { public:void show2() {std::cout This is Base2. std::endl;} };class Derived : public Base1, public Base2 { public:void display() {std::cout This is Derived. std::endl;} };int main() {Derived d;d.show1();d.show2();d.display();return 0; }解释 多重继承Derived 类继承自 Base1 和 Base2因此可以访问 Base1 和 Base2 的成员函数以及自己的成员函数。 注意事项 多重继承的二义性当多个基类有相同的成员函数或变量时可能会产生二义性问题。可以使用作用域解析运算符 :: 来消除二义性。虚继承在菱形继承结构中使用虚继承可以避免重复继承相同基类的问题。 #include iostreamclass GrandParent { public:void show() {std::cout This is GrandParent. std::endl;} };class Parent1 : virtual public GrandParent {}; class Parent2 : virtual public GrandParent {}; class Child : public Parent1, public Parent2 {};int main() {Child c;c.show(); // 不会产生二义性return 0; }总结 继承允许代码重用和建立类层次关系派生类继承基类的成员。图形对象继承层次可以创建抽象基类和派生类表示不同形状实现多态性。表达式类层次使用继承实现不同类型的表达式便于扩展和解析表达式。多重继承一个类可以继承多个基类但要注意二义性和菱形继承问题可以使用虚继承解决。
http://www.dnsts.com.cn/news/248148.html

相关文章:

  • 网站设计怎么做有效的中高端社交网站建设服务商
  • 上海市建设工程检测行业协会网站百度搜索量排名
  • 杭州10大软件开发公司wordpress怎么seo
  • 怎样才能建一个网站wordpress文章图片并排
  • 苏州知名网站建设建站公司网站子目录安装dedecms导致网页布局混乱的解决方法
  • 威县做网站哪儿好如何修改wordpress主页代码
  • 做网站优化价格典型的o2o网站有哪些
  • 济南三合一网站建设建设个电影网站多少钱
  • 网站建设策划书参考案例进销存管理系统免费版
  • 怎样看网站是什么语言做的北京网站建设公司排行榜
  • 手机网站404页面模板做直播app的公司
  • 房山做网站汤唯梁朝伟做的视频网站
  • 网站建设不挣钱深圳网站搭建哪里找
  • 做网站哪个便宜空压机网站开发公司
  • 怎样找人做网站网站建设公司南宁
  • 网站建设辶金手指谷哥十四卢松松wordpress博客
  • 深圳品牌营销型网站建设企业网络营销方案模板
  • 响应式网站开发报价广告公司怎么宣传自己
  • 开通网站费用怎么做分录网站优化公司服务
  • 西安网站建设公司哪家好手机网站建设服务哪家好
  • 免费网站建设可信吗营销网络搭建
  • 哪些网站容易做seo优化免费可商用的图片素材网站
  • 个人做论坛网站有哪些唐尧文化 网站建设工作总结
  • 网站建设情况总结深圳抖音推广公司
  • 原墨网站建设怎么添加网站关键词
  • 大连建网站多少钱家装公司名称大全
  • 武冈做网站软件技术是干嘛的
  • 珍岛信息技术有限公司做网站服务网站建设成本估算
  • 网站建设超速云免费网站有哪些备案
  • 购物网站开发大纲专门制作网站