C++ class operator[] kullanımı

TheAny

Megapat
Katılım
18 Aralık 2018
Mesajlar
7.619
Makaleler
13
Çözümler
102
operator[] tanımladım. Array class oluşturuyorum ödev için. Aşağıdaki kod bloğunu kullandığımda, çıktı "1". Buraya kadar sorun yok. Ancak normalde arrayde A[0] eşittir 0[A]. İki kullanımda da çıktı 1 olur. Oluşturduğum classta bunu nasıl yapacağım? Aşağıya member operator function bloğunu koyacağım. Nasıl bir function overload yapayım ki iki kullanımı da mümkün hale getireyim?

C++:
Array A(3);

A[0] = 1;
A[1] = 2;
A[2] = 3;

cout << A[0];


C++:
int& Array::operator[](int index) {
    if(index >= size) {
        exit(0);
    }
    return list[index];
}
 
0[A] böyle bir kullanım mümkün değil, bu op overload edilerek yapılamaz.
Normalde arraylerle bunu yapabiliyoruz ama?
1653845917249.png

Örnek olarak...
 
Geriye dönük uyumluluk için C++'ya eklenmiş bir özellik, temel türlerden oluşturulan dizilerde kullanabilirsin ancak op overload ederek sınıflarda kullanamazsın. Sınıflar için desteklenen prototip aşağıdaki şekilde sınırlıdır;

Adsız.png
 

Yeni konular

Geri
Yukarı