Diciamo di avere questa stupida classe
schermo.cpp
---------------------------------------------------
#include "schermo.h"
void schermo::aggiorna()
{
schermo::matrice[1] = 100;
}
schermo::schermo() {
schermo::matrice[1]=0;
}
schermo::~schermo() {
}
------------------------------------------------------
schermo.h
------------------------------------------------------
#ifndef SCHERMO_H_
#define SCHERMO_H_
class schermo {
public:
schermo();
void aggiorna();
virtual ~schermo();
int matrice [100];
private:
};
#endif /* SCHERMO_H_ */
------------------------------------------------------
ed un altro altrettanto stupido codice che chiama la classe
ad.cpp
------------------------------------------------------
#include <iostream>
#include <string>
#include "schermo.h"
using namespace std;
schermo ss;
int main(int argc, char **argv) {
int numero = ss.matrice[1];
auto s = std::to_string(numero);
cout << s << endl;
ss.aggiorna();
numero = ss.matrice[1];
s = std::to_string(numero);
cout << s << endl;
return 0;
}
------------------------------------------------------
#include <iostream>
#include <string>
#include "schermo.h"
using namespace std;
schermo ss;
int main(int argc, char **argv) {
int numero = ss.matrice[1];
auto s = std::to_string(numero);
cout << s << endl;
ss.aggiorna();
numero = ss.matrice[1];
s = std::to_string(numero);
cout << s << endl;
return 0;
}
------------------------------------------------------
per compilare la classe nella liberia esterna si deve modificare il file CMakeLists.txt come segue nella parte evidenziata (cioe' richiamando sia il sorgente che l'header della classe)
------------------------------------------------------
cmake_minimum_required (VERSION 2.6)
project (ad)
add_executable(ad ad.cpp schermo.cpp schermo.h)
------------------------------------------------------
project (ad)
add_executable(ad ad.cpp schermo.cpp schermo.h)