- 74
- 5
- CPU
- Intel Core i7 2600k
- Scheda Madre
- ASUS P8P67 LE
- HDD
- Samsung 850 EVO 250GB, Seagate Barracuda ST3000DM001
- RAM
- Corsair Vengeance 8GB CL8
- GPU
- Gygabite GTX 970 G1 Gaming
- Audio
- Asus Xonar DX, Xonar U3
- Monitor
- Eizo Foris FS2333-BK + Samsung P2270HD
- PSU
- Cooler Master GX 750W
- Case
- Aerocool Sixth Element White
- OS
- Windows 8.1 x64
Salve ragazzi, sto studiando questa regola e ho fatto questo programmino. Mi fa un errore ma non capisco il perché, dovrebbe essere tutto corretto.
Ho creato tre file {main.cpp, adl1.cpp, adl1.h} che hanno rispettivamente questo codice:
Ora, l'errore che mi da è questo: "undefined reference to `Pippo::foo(char)'|"
Non capisco perché non è in grado di trovare la definizione della funzione nel namespace Pippo. C'è qualcosa che sbaglio?
EDIT: Ho dimenticato a scrivere che se faccio la stessa cosa ma al parametro della funzione do il tipo A (che è quello della struct) tutto funziona perfettamente.
Ho creato tre file {main.cpp, adl1.cpp, adl1.h} che hanno rispettivamente questo codice:
Main.cpp:
adl1.cpp
adl1.h
Codice:
#include "adl1.h"
int main()
{
char b = 'a';
Pippo::foo(b);
return 0;
}
adl1.cpp
Codice:
#include "adl1.h"
namespace Pippo{
void foo(char c)
{
std::cout << "Hello balbal\n";
}
}
adl1.h
Codice:
#ifndef ADL1_H_INCLUDED
#define ADL1_H_INCLUDED
#include <iostream>
namespace Pippo{
struct A{};
void foo(char c);
}
#endif // ADL1_H_INCLUDED
Ora, l'errore che mi da è questo: "undefined reference to `Pippo::foo(char)'|"
Non capisco perché non è in grado di trovare la definizione della funzione nel namespace Pippo. C'è qualcosa che sbaglio?
EDIT: Ho dimenticato a scrivere che se faccio la stessa cosa ma al parametro della funzione do il tipo A (che è quello della struct) tutto funziona perfettamente.
Ultima modifica: