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 ++ ฟังก์ชั่นการบรรทุกเกินพิกัดและผู้ประกอบการบรรทุกเกินพิกัด

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

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

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

ฟังก์ชั่นการบรรทุกเกินพิกัดใน C ++

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

ตัวอย่างต่อไปนี้ชื่อเดียวกับการพิมพ์ฟังก์ชัน () จะใช้ในการส่งออกชนิดข้อมูลที่แตกต่างกัน:

#include <iostream>
using namespace std;
 
class printData 
{
   public:
      void print(int i) {
        cout << "Printing int: " << i << endl;
      }

      void print(double  f) {
        cout << "Printing float: " << f << endl;
      }

      void print(char* c) {
        cout << "Printing character: " << c << endl;
      }
};

int main(void)
{
   printData pd;
 
   // Call print to print integer
   pd.print(5);
   // Call print to print float
   pd.print(500.263);
   // Call print to print character
   pd.print("Hello C++");
 
   return 0;
}

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

Printing int: 5
Printing float: 500.263
Printing character: Hello C++

ใน C ++ ไปประกอบ

คุณสามารถ redefine หรือแทนที่ที่สุดของ C ++ ในตัวผู้ประกอบการ นี้จะช่วยให้คุณใช้ประเภทที่กำหนดเองของผู้ประกอบการ

ผู้ประกอบการมากเกินไปมีชื่อฟังก์ชั่นพิเศษชื่อฟังก์ชันตามด้วยผู้ประกอบการที่สำคัญและผู้ประกอบการที่จะแทนที่สัญลักษณ์ และหน้าที่อื่น ๆ ผู้ประกอบการมากเกินไปมีประเภทของผลตอบแทนและรายชื่อพารามิเตอร์

Box operator+(const Box&);

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

Box operator+(const Box&, const Box&);

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

#include <iostream>
using namespace std;

class Box
{
   public:

      double getVolume(void)
      {
         return length * breadth * height;
      }
      void setLength( double len )
      {
          length = len;
      }

      void setBreadth( double bre )
      {
          breadth = bre;
      }

      void setHeight( double hei )
      {
          height = hei;
      }
      // 重载 + 运算符,用于把两个 Box 对象相加
      Box operator+(const Box& b)
      {
         Box box;
         box.length = this->length + b.length;
         box.breadth = this->breadth + b.breadth;
         box.height = this->height + b.height;
         return box;
      }
   private:
      double length;      // 长度
      double breadth;     // 宽度
      double height;      // 高度
};
// 程序的主函数
int main( )
{
   Box Box1;                // 声明 Box1,类型为 Box
   Box Box2;                // 声明 Box2,类型为 Box
   Box Box3;                // 声明 Box3,类型为 Box
   double volume = 0.0;     // 把体积存储在该变量中
 
   // Box1 详述
   Box1.setLength(6.0); 
   Box1.setBreadth(7.0); 
   Box1.setHeight(5.0);
 
   // Box2 详述
   Box2.setLength(12.0); 
   Box2.setBreadth(13.0); 
   Box2.setHeight(10.0);
 
   // Box1 的体积
   volume = Box1.getVolume();
   cout << "Volume of Box1 : " << volume <<endl;
 
   // Box2 的体积
   volume = Box2.getVolume();
   cout << "Volume of Box2 : " << volume <<endl;

   // 把两个对象相加,得到 Box3
   Box3 = Box1 + Box2;

   // Box3 的体积
   volume = Box3.getVolume();
   cout << "Volume of Box3 : " << volume <<endl;

   return 0;
}

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

Volume of Box1 : 210
Volume of Box2 : 1560
Volume of Box3 : 5400

ผู้ประกอบการมากเกินไปสามารถ / ไม่สามารถประกอบการมากเกินไป

ต่อไปนี้เป็นรายชื่อของผู้ประกอบการสามารถรับน้ำหนักมากเกินไป:

+-*/%^
&|~!,=
<><=>=++--
<<>>==!=&&||
+=-=/=%=^=&=
|=*=<<=>>=[]()
->->*newnew []deletedelete []

ต่อไปนี้เป็นรายชื่อของผู้ประกอบการไม่สามารถรับน้ำหนักมากเกินไป:

::.*.?:

ตัวอย่างของการดำเนินงานมาก

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

序号运算符和实例
1 一元运算符重载
2 二元运算符重载
3 关系运算符重载
4 输入/输出运算符重载
5 ++ 和 -- 运算符重载
6 赋值运算符重载
7 函数调用运算符 () 重载
8 下标运算符 [] 重载
9 类成员访问运算符 -> 重载