template ve iç içe sınıf kullanırken içteki sınıfın türünden pointer döndüren metod yazmak (c++)

Programlama ve Script dilleri konusunda bilgi paylaşım alanıdır.
Cevapla
Kullanıcı avatarı
esatiz
Gigabyte3
Gigabyte3
Mesajlar: 2681
Kayıt: 30 Eki 2020, 11:18
cinsiyet: Erkek
Teşekkür etti: 399 kez
Teşekkür edildi: 451 kez

template ve iç içe sınıf kullanırken içteki sınıfın türünden pointer döndüren metod yazmak (c++)

Mesaj gönderen esatiz »

Sınıf dosyamızın adı A.hpp olsun.

Kod: Tümünü seç

#include <iostream>

template <typename T>
class A
{
private:
    class B
    {
    public:
        B();
        ~B();
    }

Kod: Tümünü seç

public:
    A();
    ~A();
    
    T member;
    B* test();
}

template <typename T> A<T>::B::B() {}
template <typename T> A<T>::B::~B() {}
template <typename T> A<T>::A() {}
template <typename T> A<T>::~A() {}
yazmak istediğimiz metod
template <typename T> A<T>::B* A<T>::test() {}
şablon------------------dönüş_değeri-----metod_adı
gibi bir şeydir. Fakat bunu derlemeye çalıştığımızda derleyici hatası alırız. (Visual Studio 2022 C++20 derleyicisinde C2187, C2955, C2244 hataları)
çözümü ise metodun yazıldığı yerde dönüş değerinden önce typename yazmaktır :
template <typename T> typename A<T>::B* A<T>::test() {}
ayrıca bkz.
https://stackoverflow.com/questions/594 ... h-template
https://stackoverflow.com/questions/610 ... e-keywords
Cevapla

“Programlama ve Script dilleri” sayfasına dön