C++ में Functions को Structures Pass करना
In this page:
struct StructName {
type member;
};
void function_name(StructName s); // by value (copy)
void function_name(StructName &s); // by reference
Value से एक Struct Pass करना
एक struct को value से pass करना function को struct की अपनी पूरी copy देता है, इसलिए function के अंदर किए गए कोई भी changes caller के original struct पर कोई असर नहीं डालते।
उदाहरण: Passing a Struct by Value
// Include std::cout and std::cin
#include <iostream>
// Define a structure type named Point
struct Point { int x; int y; };
void tryModify(Point p) {
p.x = 100;
}
// Program execution starts in main()
int main() {
Point pt = {1, 2};
tryModify(pt);
// Print to the console with cout
std::cout << pt.x << "," << pt.y << std::endl;
// Return 0 to signal that the program finished successfully
return 0;
}
Login to try C/C++/Java/PHP code in the editor
Reference से एक Struct Pass करना
&, इस्तेमाल करके reference से एक struct pass करना function को caller का original struct सीधे modify करने देता है, क्योंकि parameter एक copy की बजाय same memory refer करता है।
उदाहरण: Passing a Struct by Reference
// Include std::cout and std::cin
#include <iostream>
// Define a structure type named Point
struct Point { int x; int y; };
void modify(Point &p) {
p.x = 100;
}
// Program execution starts in main()
int main() {
Point pt = {1, 2};
modify(pt);
// Print to the console with cout
std::cout << pt.x << "," << pt.y << std::endl;
// Return 0 to signal that the program finished successfully
return 0;
}
Login to try C/C++/Java/PHP code in the editor
const Reference से एक Struct Pass करना
const reference से एक struct pass करना potentially बड़े struct को copy करने की cost avoid करता है साथ ही function को caller का original data modify करने से भी रोकते हुए, efficiency को safety के साथ combine करते हुए।
उदाहरण: Passing a Struct by const Reference
// Include std::cout and std::cin
#include <iostream>
// Define a structure type named Point
struct Point { int x; int y; };
void printPoint(const Point &p) {
// Print to the console with cout
std::cout << p.x << "," << p.y << std::endl;
}
// Program execution starts in main()
int main() {
Point pt = {5, 7};
printPoint(pt);
// Return 0 to signal that the program finished successfully
return 0;
}
Login to try C/C++/Java/PHP code in the editor
एक Function से एक Struct Return करना
एक function value से एक struct भी return कर सकता है, caller को एक पूरा struct construct करके वापस देते हुए, जो कई related results को साथ bundle करने का एक common तरीका है।
उदाहरण: Returning a Struct from a Function
// Include std::cout and std::cin
#include <iostream>
// Define a structure type named Point
struct Point { int x; int y; };
Point makeOrigin() {
Point p;
p.x = 0;
p.y = 0;
// Send p back to the caller
return p;
}
// Program execution starts in main()
int main() {
Point origin = makeOrigin();
// Print to the console with cout
std::cout << origin.x << "," << origin.y << std::endl;
// Return 0 to signal that the program finished successfully
return 0;
}
Login to try C/C++/Java/PHP code in the editor
Structs का एक Array Pass करना
Structs का एक array function को pass होने पर एक pointer में decay होता है, किसी भी दूसरे type के array की तरह, इसलिए function को आमतौर पर array की length भी एक अलग parameter की तरह मिलती है।
उदाहरण: Passing an Array of Structs
// Include std::cout and std::cin
#include <iostream>
// Define a structure type named Point
struct Point { int x; int y; };
void printAll(Point points[], int size) {
// Loop: repeat while the condition holds
for (int i = 0; i < size; i++) {
// Print to the console with cout
std::cout << points[i].x << "," << points[i].y << " ";
}
// Print to the console with cout
std::cout << std::endl;
}
// Program execution starts in main()
int main() {
Point pts[] = {{1, 2}, {3, 4}};
printAll(pts, 2);
// Return 0 to signal that the program finished successfully
return 0;
}
Login to try C/C++/Java/PHP code in the editor
- हर बार एक बड़ा struct value से pass करना, जो सब कुछ copy करता है और program धीमा करता है।
- value से pass किए एक struct को modify करना और original बदलने की उम्मीद करना।
- जब function को struct सिर्फ पढ़ना चाहिए तो
constभूल जाना।
Chapter Quiz — Complete all 13 topics to unlock
0/13 topics done
Complete these topics first:
- C++ Functions Introduction
- C++ Function Parameters
- C++ Multiple Function Parameters
- C++ Passing by Reference
- C++ Passing Structures to Functions
- C++ Return Values
- C++ Function Overloading
- C++ Default Arguments
- C++ Recursion
- C++ Inline Functions
- C++ Lambda Functions
- C++ Scope & Lifetime
- C++ Math Functions