Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254

    [c++] Problema su operator[]

    Mi è sopraggiunto questo problema:

    Nel contenitore implementato da me ho implementato l'operatore di indicizzazione ( operator[] ) che ritorna un puntatore a nodo ( classe interna pubblica del contenitore )

    Ora, nella mia dialog, quando utilizzo tale operatore il compilatore mi avverte che ritorna un contenitore<classebase*> e non un contenitore<classebase*>::nodo*

    Sono ore che cerco una soluzione e non so più doce sbattere la testa..

    L'operatore è definito così nell'header: nodo* operator[](int)

    e così poi in implementazione: typename contenitore<k>::nodo* contenitore<k>:perator[](int i) {........}

  2. #2
    a) non capisco perché definirlo due volte, non stai prima a scrivere direttamente:

    contenitore<k>::nodo* contenitore<k>:perator[](int i) {........}

    invece di definirlo anche come nodo* operator[](int) nell'header?

    b) controlla che la chiamata sia effettuata su un oggetto o su una reference a contenitore<type>: se la fai su un puntatore viene chiamato l'operatore standard per i puntatori
    Armageddon - Chief Developer

    Stiamo cercando collaboratori!

  3. #3
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    Era proprio la seconda.. grazie..

    la definizione è nell'header mentre l'implementazione è nel cpp.. è buona norma dividere le cose..

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.