Une correction pour un code en poo [Résolu]

Signaler
Messages postés
25
Date d'inscription
dimanche 7 février 2010
Statut
Membre
Dernière intervention
26 avril 2014
-
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
-
je vous en prie je suis un debutant en poo sur vb net et j ai rencontré ce probleme il s agit d un erreur lors que j j'execute ce code la et je sais pas comment je peux s en sortir
voila le code
il y a un module contient sub main
une classe1 et classe2 contient un attribut de type classe 1

1 ere classe

public class class1
    private d as string
    sub  new
         d=""
     end sub
end class1

2eme classe

pubilc class class2
       public t as class1
      sub new
       t.d=""
      end sub
  sub ajouter(byval v as string)
     t.d=v
    end sub
  function afficher
      return "la valeur est "& t.d
  end function
end class

le programme appelant module1

module module1
      dim s as new class2
      sub main()
            s.ajouter("kkkkkkkk")
            console.writeline(s.afficher())
     end sub
end module

le message de debogage est s ecrit comme ça:
une exception a ete levé par l initialiseur de type pour 'consoleapplication1.module1'
et merci vous

3 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
36
public t as New class1








---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
25
Date d'inscription
dimanche 7 février 2010
Statut
Membre
Dernière intervention
26 avril 2014

casy merci pour ton aide c etait vraiment juste une vraie correction
maintenant j ai autr probleme j ai une classe etagere de livre et une classes de livres et un module de sub main
j ai une boite de debogage lors d execution qui me dit :La référence d'objet n'est pas définie à une instance d'un objet.

le code c est comme suit :
classe livre
Public Class livre
Private _titre As String

Public Sub New()

End Sub

Property titre()
Get
Return _titre
End Get
Set(ByVal value)
_titre = value
End Set
End Property
End Class


la classe etagere:
Public Class etagere
Private t() As livre 'un tableau des livres
Public nb As Integer
Dim j As Integer 'le nombre de livre existant dans l'etager

Sub New()

End Sub

Sub New(ByVal nombrlivre As Integer) 'le programmeur va choisir le nombre des livres que peut contien un etager
nb = nombrlivre - 1
ReDim t(nb)
t(nb) = New livre
End Sub

Sub ajouter_livre(ByVal titr As String)

If j <= nb Then 'on ajoute à condition qu on depasse pas le nombre de livre que peut supporter l'etager
t(j).titre = titr
j = j + 1
Else
Console.WriteLine("l'etager est pleine")
End If
End Sub

End Class

et le module pour tester le programme:
Module Module1
Dim etager1 As New etagere(4)
Sub Main()

etager1.ajouter_livre("vb.net")

End Sub
End Module

******le debogage s effectue au niveau de la classe etager la procedure ajouter_livre() la ligne t(j).titre = titr
je vous en prie de me faire la correction le plus vite possible pr c q je suis pressé par les examen et merci
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
36
    Sub New(ByVal nombrlivre As Integer)
        nb = nombrlivre - 1

        ReDim t(nb)

        
t(nb) = New livre



    End Sub




Seul t(nb) sera initialisé avec un objet livre, t(0) à t(nb-1) ne seront pas initialisés

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php