ทำให้อุขอมากเกินฟังก์ชันภาษา c++language

0

คำถาม

ฉันอยากจะทำมากเกินฟังก์ชันกับอุใน C++.

#include <iostream>

using namespace std;

int rectangle(int p, int l);

int main() {
    cout << rectangle(3);
    return 0;
}

int rectangle(int p) {
    return p*p;
}

int rectangle(int p, int l) {
    return p*l;
}

ฉันมีข้อผิดพลาดที่

int rectangle(int p, int l);

มันเป็นไปได้ทำให้อุกับมากเกินฟังก์ชัน? ถ้าเป็นไปได้ว่าต้องทำมัน

c++ function overloading
2021-11-24 03:34:09
1

คำตอบที่ดีที่สุด

1

คุณเคยที่จะประกาศฟังก์ชันก่อนที่คุณใช้/เรียกมัน เธอทำประกาศที่ 2 ข้อโต้แย้งของเวอร์ชั่น rectangle ฟังก์ชันแต่ดูเหมือนคุณจะต้องลืมที่จะประกาศที่ 1 เถียงกันกินเวอร์ชั่น.

ที่แสดงด้านล่างนี้ถ้าคุณเพิ่งปล่อยให้เธอได้หายใจอยู่อีสำหรับ 1 เถียงกันงั้นเวอร์ชั่นของคุณโปรแกรมทำงาน(compiles).

#include <iostream>
using namespace std;

//declare the function before main
int rectangle(int p, int l);
int rectangle(int p);//ADDED THIS DECLARATION
int main() {
    cout << rectangle(3);
    return 0;
}
//define the functions after main
int rectangle(int p) {
    return p*p;
}
int rectangle(int p, int l) {
    return p*l;
}

การส่งออกของโปรแกรมจะได้เห็น มาที่นี่.

ทางเลือกทางออก:

ถ้าคุณไม่ต้องการที่จะประกาศกันและฟังก์ชันต่างหากงั้นคุณควรจะกำหนดพวกมันก่อนที่หลักแทนที่จะประกาศว่าพวกเขาที่แสดงทางด้านล่างนี้

#include <iostream>
using namespace std;

//define the functions before main. This way there is no need to write a separate function declaration because all definition are declarations
int rectangle(int p) {
    return p*p;
}
int rectangle(int p, int l) {
    return p*l;
}

int main() {
    cout << rectangle(3);
    return 0;
}

2021-11-24 03:58:54

"คุณได้ที่จะประกาศฟังก์ชันก่อนที่คุณใช้/เรียกมัน" -อีกทางเลือก,แค่กำหนดฟังก์ชันก่อนที่มันเคยโดยไม่แยกปล่อยให้เธอได้หายใจอยู่อีก สำหรับเดียวแฟ้มโปรแกรม,ข้างหน้า-ปล่อยให้เธอได้หายใจอยู่อีเป็นเพียงต้องการตอนที่มีร่วมกัการขึ้นแก่กัน.
Dai

ดังนั้นฉันต้องการเบอร์เดียวกันกับของในต้นแบบโดเป็นมากเกินฟังก์ชัน?
Hanif Ramadhani

@HanifRamadhani หรือทั้งหมดของคุณฟังก์ชันก่อนหลัก. ใช้หน้าตั้งตารประกาศนอกจากคุณจริงๆต้องการมัน
Louis Go

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

@HanifRamadhani ของคุณยินดีต้อนรับ คุณสามารถทำเครื่องหมายคำตอบที่ถูกต้องถ้ามันช่วยคุณ
Anoop Rana

ฉันจะย้อนกลับลำดับของโอเวอร์โหลดแล้วโทรหา rectangle(p, p) จาก rectangle(int p).
Jarod42

@Jarod42 ใช่นั่นมันเป็นไปได้แต่ฉันสงสัยว่าถ้านั่นเป็นความคิดที่ดีในคดีนี้ ในนี้ง่ายอย่างคดีนั่นคือไม่จำเป็นต้องโทรเรียกอีกฟังก์ชันเพราะว่าเราเพิ่งได้ผลโดยตรงการเขียน return p*p แทนที่จะเพิ่มขึ้นที่เรียกมุมสูงเท่านั้นโดยเรียกอีกคนฟังก์ชัน.
Anoop Rana

มันเอาคน"duplication"ตรรกะ. โอกาสเป็นรหัสผ่านจะเป็น inlined โดยคอมไพเลอร์อยู่แล้ว
Jarod42

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่