Latest web development tutorials
×

C++ หลักสูตร

C++ หลักสูตร C++ แนะนำโดยย่อ C++ การตั้งค่าสภาพแวดล้อม C++ ไวยากรณ์พื้นฐาน C++ หมายเหตุ C++ ชนิดข้อมูล C++ ประเภทตัวแปร C++ ขอบเขตตัวแปร C++ คงที่ C++ ประเภทการปรับเปลี่ยน C++ ประเภทการจัดเก็บ C++ ผู้ประกอบการ C++ การไหลเวียน C++ ผู้พิพากษา C++ ฟังก์ชัน C++ ดิจิตอล C++ แถว C++ เชือก C++ ชี้ C++ อ้างอิง C++ วันที่และเวลา C++ เอาท์พุทหรือ Basic Input C++ โครงสร้างข้อมูล

C++ เชิงวัตถุ

C++ คลาสและวัตถุ C++ สืบทอด C++ ผู้ประกอบการมากเกินไปและการทำงานมากเกินไป C++ polymorphism C++ ข้อมูลที่เป็นนามธรรม C++ ข้อมูล encapsulation C++ อินเตอร์เฟซ(ระดับนามธรรม)

C++ การสอนที่ทันสมัย

C++ แฟ้มและสตรีม C++ การจัดการข้อยกเว้น C++ หน่วยความจำแบบไดนามิก C++ namespaces C++ แบบ C++ preprocessor C++ การประมวลผลสัญญาณ C++ multithreading C++ Web โครงการ

C++ กรุ

C++ STL หลักสูตร C++ ห้องสมุดมาตรฐาน C++ ทรัพยากรที่มีประโยชน์

c ++ Interface (ระดับนามธรรม)

มันอธิบายลักษณะการทำงานของอินเตอร์เฟซและระดับการทำงานโดยไม่จำเป็นต้องให้เสร็จสมบูรณ์ระดับการดำเนินงานโดยเฉพาะอย่างยิ่ง

c ++อินเตอร์เฟซที่จะดำเนินการใช้ระดับนามธรรมระดับนามธรรมและไม่สับสนกับสิ่งที่เป็นนามธรรมข้อมูลนามธรรมข้อมูลที่เป็นแนวคิดของรายละเอียดการปฏิบัติที่เกี่ยวข้องกับข้อมูลที่แยก

ถ้าชั้นฟังก์ชั่นอย่างน้อยหนึ่งถูกประกาศเป็นฟังก์ชั่นเสมือนบริสุทธิ์แล้วระดับนี้เป็นระดับนามธรรม ฟังก์ชั่นเสมือนบริสุทธิ์โดยใช้ "= 0" ในงบที่ระบุไว้ดังต่อไปนี้:

class Box
{
   public:
      // 纯虚函数
      virtual double getVolume() = 0;
   private:
      double length;      // 长度
      double breadth;     // 宽度
      double height;      // 高度
};

การออกแบบระดับนามธรรม (ปกติจะเรียกว่า ABC) มีวัตถุประสงค์เพื่อให้ผู้อื่นสามารถสืบทอดระดับชั้นฐานที่เหมาะสมระดับนามธรรมไม่สามารถใช้ในการยกตัวอย่างวัตถุก็สามารถนำมาใช้เป็นอินเตอร์เฟซ ถ้าคุณพยายามที่จะยกตัวอย่างวัตถุของระดับนามธรรมก็จะส่งผลในการรวบรวมข้อผิดพลาด

ดังนั้นถ้าเอบีซีเป็น subclass เป็น instantiated คุณต้องใช้แต่ละฟังก์ชันเสมือนก็หมายความว่า c ++ สนับสนุนการใช้อินเตอร์เฟซที่คำสั่งเอบีซี ถ้าไม่มีการบรรทุกเกินพิกัดฟังก์ชันเสมือนบริสุทธิ์ในชั้นเรียนมาพยายามที่จะยกตัวอย่างวัตถุของคลาสนี้จะทำให้เกิดการรวบรวมข้อผิดพลาด

ระดับสามารถใช้ในการยกตัวอย่างวัตถุที่เรียกว่าชั้นคอนกรีต

ตัวอย่างของระดับนามธรรม

พิจารณาตัวอย่างต่อไปนี้รูปร่างชั้นฐานให้getArea Interface ()สองชั้นเรียนมาสี่เหลี่ยมผืนผ้าและสามเหลี่ยมได้ตระหนักถึงในgetArea ():

#include <iostream>
 
using namespace std;
 
// 基类
class Shape 
{
public:
   // 提供接口框架的纯虚函数
   virtual int getArea() = 0;
   void setWidth(int w)
   {
      width = w;
   }
   void setHeight(int h)
   {
      height = h;
   }
protected:
   int width;
   int height;
};
 
// 派生类
class Rectangle: public Shape
{
public:
   int getArea()
   { 
      return (width * height); 
   }
};
class Triangle: public Shape
{
public:
   int getArea()
   { 
      return (width * height)/2; 
   }
};
 
int main(void)
{
   Rectangle Rect;
   Triangle  Tri;
 
   Rect.setWidth(5);
   Rect.setHeight(7);
   // 输出对象的面积
   cout << "Total Rectangle area: " << Rect.getArea() << endl;

   Tri.setWidth(5);
   Tri.setHeight(7);
   // 输出对象的面积
   cout << "Total Triangle area: " << Tri.getArea() << endl; 

   return 0;
}

เมื่อโค้ดข้างต้นจะรวบรวมและดำเนินการก็จะก่อให้เกิดผลลัพธ์ต่อไปนี้:

Total Rectangle area: 35
Total Triangle area: 17

จากตัวอย่างข้างต้นเราจะเห็นได้ว่าระดับนามธรรมคือการกำหนด getArea Interface () สองชั้นเรียนมาคือวิธีการคำนวณพื้นที่ของขั้นตอนวิธีที่แตกต่างกันเพื่อให้บรรลุฟังก์ชันเดียวกัน

กลยุทธ์การออกแบบ

ระบบเชิงวัตถุอาจใช้ชั้นฐานนามธรรมให้เหมาะสมทั่วไปอินเตอร์เฟซที่เป็นมาตรฐานสำหรับการใช้งานภายนอกทั้งหมด จากนั้นเรียนมาโดยสืบทอดมาจากชั้นฐานนามธรรมใส่การดำเนินงานดังกล่าวทั้งหมดได้รับมา

ฟังก์ชั่น (เช่นฟังก์ชั่นของประชาชน) การใช้งานภายนอกให้ในรูปแบบของการเรียนฐานนามธรรมหน้าที่เสมือนบริสุทธิ์มีอยู่ ฟังก์ชั่นเหล่านี้เสมือนบริสุทธิ์จะดำเนินการในชั้นเรียนมาที่สอดคล้องกัน

สถาปัตยกรรมนี้ยังช่วยให้การใช้งานใหม่ได้อย่างง่ายดายสามารถเพิ่มเข้าไปในระบบแม้หลังจากที่ระบบจะยังคงสามารถกำหนดดังนั้น