Probleem met "cout" in andere bestanden.

Status
Niet open voor verdere reacties.

extremefun1

Gebruiker
Lid geworden
5 mei 2009
Berichten
42
Hallo, ik was wat tutorials aan het volgens op learncpp.com

Ik had geleerd hoe ik "cout" kon gebruiken, met het bekende "hello world" voorbeeld.

Daarna leerde ik header files te maken zodat ik functies niet meer van te voren hoefde te declareren. Daarbij leerde ik ook dat de functie, die gedeclareerd kon worden, ook in een ander bestandje mocht staan.

Nu heb ik dus main.cpp, subfile1.cpp en add.h

main.cpp
Code:
#include "add.h";
#include <iostream>


 int main()
 {

     subfile1_function_1();

     }

subfile1.cpp
Code:
#include <iostream>

void subfile1_function_1(){

 using namespace std;
 cout << "cout from: subfile1 function 1";
// waarom geeft hij dit niet weer?
// De compiler geeft ook geen error!


}

add.h
Code:
#ifndef ADD_H_INCLUDED
#define ADD_H_INCLUDED

subfile1_function_1();

#endif // ADD_H_INCLUDED

Als ik bijvoorbeeld (return 5) in subfile1_function_1() van subfile.cpp doe .. en dan met "cout" laat zien in main.cpp dat werkt wel.
Hij geeft ook geen compile errors.
Waarom werkt dit niet?

Dit lijkt wel een basis probleem, maar kom er maar niet uit. Internet en forums afzoeken heeft ook niks opgeleverd.

Alvast bedankt! :thumb:
 
Laatst bewerkt:
Mijn compiler geeft wel een error:
frank@darkstar:~/cpptest$ g++ -Wall -ansi -c -o main.o main.cpp
main.cpp:1:17: let op: overbodige tokens aan einde van #include commando
add.h:4: fout: expected constructor, destructor, or type conversion before ';' token
main.cpp: In function 'int main()':
main.cpp:8: fout: 'subfile1_function_1' was not declared in this scope

De waarschuwing gaat over de puntkomma achter '#include "add.h"'. Die mag weg. De foutmelding komt omdat het prototype in "add.h" ("subfile1_function_1();") geen return type heeft (in dit geval moet dat void zijn, dus "void subfile1_function_1();").
Als ik dat verander werkt hij bij mij.
 
Laatst bewerkt:
Ik heb "void" voor "subfile1_function_1();" neergezet in add.h. Dat werkte perfect. :thumb:


Bedankt voor je hulp. :D
Die fout zal ik nu zeker nooit weer maken. :p
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan