Jou wrote:
> In der C-Datei "test_2.c" habe ich "extern CAuto car" eingefügt.
> Es erscheint trotz allem folgende Fehlermeldung:
>
> Generieren von Code...
> Linker-Vorgang läuft...
> user.obj : error LNK2001: Nichtaufgeloestes externes Symbol "class CAuto
> histo_obj" (?car@@3VCAuto@@A)
Logich. Du hast ja nicht
i = car.baujahr;
geschrieben, sondern
i = histo_obj.baujahr;
Die Objekte müssen schon gleich heissen.
Im übrigen ist es ziemlicher Mist, hier mit globalen Objekten
zu arbeiten. Übergib einfach das Objekt an die Funktion die
es benötigt und gut ists.
1 | void foo( CAuto& car_obj )
|
2 | {
|
3 | int j;
|
4 |
|
5 | j = car_obj.baujahr;
|
6 | }
|
7 |
|
8 |
|
9 | int main()
|
10 | {
|
11 | CAuto car;
|
12 |
|
13 | foo( car );
|
14 | }
|
Auch wenn globale Variablen in der µC-Programmiererei nicht
zu vermeiden sind, so sollte man sich das bei der Programmierung
auf einem größeren System nicht einreissen lassen. Globale
Objekte sind ein Ausdruck von schlechtem Design (auch wenn
jetzt einige wieder matschkern werden).