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 ++ นามธรรมข้อมูล

นามธรรมข้อมูลหมายเพียงเพื่อให้ข้อมูลที่สำคัญกับโลกภายนอกและซ่อนรายละเอียดการดำเนินงานของพื้นหลังของพวกเขาว่าประสิทธิภาพของเฉพาะข้อมูลที่จำเป็นโดยไม่ต้องนำเสนอรายละเอียด

นามธรรมข้อมูลเป็นพึ่งพาอินเตอร์เฟซการเขียนโปรแกรมและการดำเนินการแยก (การออกแบบ) เทคโนโลยี

ขอใช้เวลาในชีวิตจริงตัวอย่างจริงเช่นทีวีคุณสามารถเปิดและปิดเปลี่ยนช่อง, ปรับระดับเสียงเพิ่มส่วนประกอบภายนอก (เช่นลำโพง, VCR, เครื่องเล่นดีวีดี) แต่คุณไม่ทราบว่าภายใน รายละเอียดการปฏิบัติที่เป็นคุณไม่ทราบวิธีการที่จะได้รับจากสายสัญญาณ, วิธีการแปลงสัญญาณและในที่สุดก็ปรากฏบนหน้าจอ

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

ตอนนี้ให้ของได้รับลงไปที่ธุรกิจมันเป็นในแง่ของการเขียนโปรแกรม C ++, C ++ข้อมูลระดับนามธรรมที่เป็นไปได้พวกเขาไปยังโลกภายนอกยังมีวิธีการทั่วไปสำหรับการดำเนินงานเป็นจำนวนมากของวัตถุข้อมูล, ที่อยู่, ในความเป็นจริงโลกภายนอกไม่ทราบว่าการดำเนินการระดับภายใน

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

ใน C ++เราจะใช้ชั้นเรียนของเราเองที่จะกำหนดชนิดข้อมูลนามธรรม (ADT)คุณสามารถใช้ostream ชั้นศาลวัตถุข้อมูลส่งออกไปยังออกมาตรฐานดังต่อไปนี้:

#include <iostream>
using namespace std;

int main( )
{
   cout << "Hello C++" <<endl;
   return 0;
}

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

แท็บการเข้าถึงบังคับบทคัดย่อ

ใน C ++ เราจะใช้ Access แท็บเพื่อกำหนดระดับอินเตอร์เฟซที่เป็นนามธรรม ชั้นสามารถมีศูนย์หรือเข้าถึงป้ายกำกับ:

  • แท็กกำหนดการใช้งานของสมาชิกประชาชนสามารถเข้าถึงทุกส่วนของโปรแกรม มุมมองนามธรรมของประเภทของข้อมูลที่เป็นสาธารณะโดยสมาชิกที่กำหนดไว้
  • การใช้ฉลากเอกชนกำหนดโดยใช้สมาชิกชั้นไม่สามารถเข้าถึงรหัส ส่วนเอกชนของรหัสที่ใช้ประเภทของรายละเอียดการดำเนินซ่อน

แท็กความถี่การเข้าถึงปรากฏไม่มีขีด จำกัด แต่ละแท็กระบุการเข้าถึงที่ใช้โดยสมาชิกของระดับการเข้าถึงที่กำหนดไว้ ระดับการเข้าถึงข้อมูลที่ได้รับมอบหมายจะยังคงมีผลจนกว่าถัดแท็บเผชิญหน้า Access หรือปิดประเภทของร่างกายด้านขวาพบในวงเล็บ

ประโยชน์ที่ได้รับข้อมูลที่เป็นนามธรรม

นามธรรมข้อมูลได้สองข้อได้เปรียบที่สำคัญ:

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

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

ข้อมูลเช่นบทคัดย่อ

โปรแกรม c ++ ชั้นใด ๆ กับสมาชิกของนามธรรมข้อมูลภาครัฐและเอกชนสามารถนำมาใช้เป็นตัวอย่าง พิจารณาตัวอย่างต่อไปนี้:

#include <iostream>
using namespace std;

class Adder{
   public:
      // 构造函数
      Adder(int i = 0)
      {
        total = i;
      }
      // 对外的接口
      void addNum(int number)
      {
          total += number;
      }
      // 对外的接口
      int getTotal()
      {
          return total;
      };
   private:
      // 对外隐藏的数据
      int total;
};
int main( )
{
   Adder a;
   
   a.addNum(10);
   a.addNum(20);
   a.addNum(30);

   cout << "Total " << a.getTotal() <<endl;
   return 0;
}

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

Total 60

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

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

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

ในกรณีนี้โดยไม่คำนึงถึงโปรแกรมใด ๆ โดยใช้อินเตอร์เฟซอินเตอร์เฟซจะไม่ได้รับผลกระทบเท่านั้นที่จะตระหนักถึง recompilation ล่าสุด