Struct ve fonksiyon
- C++ kursu
- Başlangıç
- Ders 96/116
- 5 dk
Struct'ı fonksiyona değerle ve referansla geçmeyi öğrenirsin.
Struct'ı fonksiyona geçmek
Bir struct değişkenini fonksiyona parametre olarak geçebilirsin. Değerle geçişte fonksiyon yapının bir kopyasını alır; dolayısıyla özgün değişken değişmez.
void printPoint(Point p) {
cout << p.x << ", " << p.y;
}Burada printPoint bir Point alır ve üyelerini yazdırır. Çağrı printPoint(p); biçiminde yapılır. Değerle geçiş küçük yapılar için uygundur; büyük yapılarda kopyalama maliyetinden kaçınmak için referans kullanılır.
Referansla geçiş
Büyük yapılarda kopyalama maliyetinden kaçınmak için referansla geçiş kullanılır. Parametre türünün yanına & eklersin; bu sayede fonksiyon özgün yapıyı doğrudan görür.
void move(Point& p) {
p.x += 1;
p.y += 1;
}Burada p referans olduğu için p.x += 1 özgün yapının x üyesini değiştirir. Yapının değişmesini istemiyorsan const Point& kullanırsın; hem kopyalamaz hem de korur.
Uygulama printPoint fonksiyonu yaz
void printPoint(Point p) adında bir fonksiyon tanımla; cout << p.x << " - " << p.y << endl; satırıyla üyeleri yazdırsın. main içinde Point p; p.x = 3; p.y = 4; tanımla ve printPoint(p); çağrısı yap.
Başlangıç kodu
#include <iostream>
using namespace std;
struct Point {
int x;
int y;
};
// printPoint fonksiyonunu tanımla
int main() {
// Point p; tanımla, üyelere değer ata, fonksiyonu çağır
return 0;
}Örnek çözüm
#include <iostream>
using namespace std;
struct Point {
int x;
int y;
};
void printPoint(Point p) {
cout << p.x << " - " << p.y << endl;
}
int main() {
Point p;
p.x = 3;
p.y = 4;
printPoint(p);
return 0;
}Beklenen çıktı
3 - 4
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bir yapıyı büyük yapıda kopyalamadan geçirmek için ne kullanılır?
- referans Doğru cevap
- türetilmiş tür
- sabit
- değerle geçiş
Açıklama: Referans, yapıyı kopyalamadan geçirmeyi sağlar.
2 Boşluğu doldur: referans parametresi
void move(Point____ p) {
p.x += 1;
}
void move(Point& p) {
p.x += 1;
}
Açıklama: & işareti referans parametresi belirtir.
3 Geçiş türünü özelliğiyle eşleştir
| Kavram | Anlamı |
|---|---|
değerle |
kopya oluşturur |
referansla |
özgünü değiştirebilir |
const referans |
kopyalamaz ve korur |