Documente Academic
Documente Profesional
Documente Cultură
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
Linguagem C++
Linguagem C++ para Desenvolvimento em Qt
12 de marc o de 2013
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
1 2 3 4 5 6 7
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
Topicos
1 2 3 4 5 6 7
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
A Linguagem C++
Bjarne Stroustrup desenvolveu o C++ + Orientac a Objetos) Multi-paradigma (Modulac ao ao Compilada setembro de 2011 (C++11 ou Mais recente especicac ao: C++0x)
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
Framework Qt
Trolltech Nokia Digia Uso Comercial e Livre (Qt Project) Multiplataforma Muitos Modulos (QtCore, QtGUI, QtMultimedia, QtNetwork e etc) Qt Creator IDE
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
ALO-MUNDO-PURO.cpp
1 2 3 4 5 6 7 8
# include <iostream > using namespace std; int main () { cout << "Ola Mundo " << endl; return 0; }
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
ALO-MUNDO-QT.cpp
1 2 3 4 5 6 7 8
# include <QtGui > int main( int argc , char *argv []) { QApplication app(argc , argv ); QLabel label ("Alo , Mundo !"); label .show (); return app.exec (); }
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
Instalac ao
C++ puro
No Linux, g++, via repositorio ou instalador No Windows, Projeto MinGW + MSYS IDEs: eclipse, netbeans, code::blocks, Editores PlanText (notepad, gedit e etc).
Framework Qt: Instalador inclui Biblioteca + Qt Creator IDE (Linux, Windows e MacOS)
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
Criar pasta vazia e inserir os arquivos .cpp e .h do projeto. Na linha de comando, nesta pasta, deve-se,
1 2 3
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
Qt Creator, Compilac ao
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
Topicos
1 2 3 4 5 6 7
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
reconhecidos em Todos os elementos da linguagem C sao C++. Algumas fam lias de recursos foram extendidas (como ` orientac operadores) e outras foram criadas (relacionadas a ao a objetos).
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
As bibliotecas do C podem ser utilizadas. Usar um c prexo ao antigo nome sem o .h,
1 2 3
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
Namespaces
uma denic de escopo utilizada para Um namespace e ao resolver problemas de nomes. Recursos de mesmo nome podem ser alocados em namespaces de nomes distintos permitindo que sejam utilizados num mesmo contexto. Recursos de nomes distintos podem ser espalhados em namespaces de mesmo nome denidos em lugares diferentes.
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
Exemplo de Namespaces
NAMESPACES.cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
namespace abc { void print ( int x, int y) { cout << x+ y << endl; } }; namespace xyz { void print ( int x, int y) { cout << x*y << endl; } }; using xyz :: print ; int main () { abc :: print (12 , 8); print (12 , 8); return 0; }
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
Entrada e Sa da
necessario? O que e
1 2
cout
1 2 3
cout << 23; cout << x + y << endl; cout << " Total a pagar :" << total << \n;
cin
1 2
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
Dinamica Alocac ao
dos tradicionais * e & o C++ possui novos operadores Alem (new) e desalocac especializados em alocac ao ao (delete/delete []) de memoria.
MEM-DIN.cpp
1 2 3 4 5 6 7 8
int main () { int *k = new int ; int *u = new int [20]; for ( int i = 0; i <20; i++) u[i] = i*i+1; delete k; delete [] u; }
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
Referencias
um ponteiro impl Uma referencia e cito.
REFERENCIAS.cpp
1 2 3 4 5 6 7 8 9 10 11 12
# include <iostream > void swap( int &a, int &b) { int t = a; a = b; b = t; } int main () { int i = 25, j = 7; int &r = i; // Nova referencia r *= 2; swap(i, j); std :: cout << i << " " << j << std :: endl; return 0; }
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
Retornando Referencias
RET-REF.cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 14
# include <iostream > int v[5]; int & get( int k) { static int dummy = -1; return k >=0 && k <5 ? v[k] : dummy ; } int main () { for ( int k=0; k <10; k++) get(k) = 2*k + 1; for ( int k=0; k <10; k++) std :: cout << get(k) << " "; return 0; }
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
Topicos
1 2 3 4 5 6 7
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
Classes
FNC-MEMBROS.cpp
1 2 3 4 5 6 7 8 9 10
class X { // ... int oi () { /* ... */ }; // inline void ola (); // ... }; void X:: ola () { // ... }
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
Membros de Classes
MB-DADOS.cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
# include <iostream > class frac { int num; int den; public : void load( int a, int b) { num = a; den = b; } void print () { std :: cout << num << / << den << \n; } }; int main () { frac x; x.load (3, 2); x. print (); return 0; }
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
Construtores e Destrutores
CONSTRUT-DESTRUT.cpp
3 4 5 6 7 8 9 10
class frac { int num; int den; public : frac( int a, int b) { num = a; den = b; } void print () { std :: cout << num << / << den << \n; } frac () { std :: cout << " morri !" << num << std :: endl; } };
13 14 15 16 17
frac x(3, 2); // frac x = frac (3, 2); x. print (); frac *pt = new frac (5, 9); pt -> print (); delete pt;
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
Sobrecarga de Construtores
S-CONSTRUTORES.cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
# include <iostream > # include <cmath > using namespace std; class Point { int xVal , yVal; public : Point ( float , float ); // coordenadas polares Point ( int x, int y) { xVal = x; yVal = y; cout << "1\n"; } Point ( void ) { xVal = yVal = 0; } // origem }; Point :: Point ( float len , float angle ) { xVal = ( int ) (len * cos( angle )); yVal = ( int ) (len * sin( angle )); cout << "2\n"; }
Universidade Federal do CearaCampus de Quixada
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
de Destrutores Aplicac ao
APP-DESTRUT.cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
class pilha { int *dat; int m, n; public : pilha ( int _m) { m = _m; dat = new int [m]; } // ... pilha () { delete [] dat; } }; int main () { pilha p (20); return 0; }
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
Escopo de Classes
public: Membros acess veis aos objetos. private: Membros inacess veis aos objetos. protected: Membros inacess veis aos objetos, mas acess veis a classes herdeiras.
ESCOPO-CLASSES.cpp
1 2 3 4 5 6 7 8
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
Argumentos Default
ARGS-DEFAULT.cpp
1 2 3 4 5 6 7 8 9 10 11 12 13
class Point { int xVal , yVal; public : Point ( int x = 0, int y = 0) { xVal=x; yVal=y; }; // ... }; int main () { Point p1; // mesmo que: p1(0, 0) Point p2 (10); // mesmo que: p2 (10 , 0) Point p3 (10 , 20); return 0; }
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
Uso de this
MB-IMPLICITO.cpp
1 2 3 4 5 6 7
class Point { int x, y; public : Point ( int x, int y) { this ->x = x; this ->y = y; } };
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
class frac { int num , den; public : frac( int _n , int _d = 1) : num(_n), den(_d) {} }; class image { int width , height ; public : image ( int w, int h); }; image :: image ( int w, int h) : width (w), height (h) {}
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
Membros Objetos
MB-OBJS.cpp
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
class point { int x, y; public : point ( int x, int y) { this ->x = x; this ->y = y; } void print () { std :: cout << "(" << x << ", " << y << ")"; } }; class rect { point u; point v; public : rect ( int x, int y, int w, int h): u(x,y), v(x + w, y + h) {} void print () { std :: cout << "["; u. print (); v. print (); std :: cout << "]\n"; } };
Universidade Federal do CearaCampus de Quixada
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
Vetores de Objetos
impl ocorre A inicializac ao cita de objetos num vetor so de quando a classe correspondente possui uma versao precisa de argumentos. construtor que nao necessaria. Do contrario uma lista expl cita e
VEC-OBJS.cpp
24 25 26 27 28 29 30 31
// point w[3] => erro point w[3] = { point (1 ,2) , point (5 ,5) , point (9 ,11) }; // point *p = new point [6]; => erro frac vec [5] = {1, 6, 8, 3, 21}; complex teste [3] = {4, -1.9, 0.1}; complex d[5]; complex *q = new complex [13]; delete [] q;
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
Topicos
1 2 3 4 5 6 7
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
class Time { // ... public : long GetTime ( void ) { /* ... */ } void GetTime ( int &hours , int &minutes , int & seconds ) { /* ... */ };
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
int *dat , n; void copy_from ( const vec& r) { delete [] dat; dat = new int [r.n]; n = r.n; for ( int k=0; k<n; k++) dat[k] = r.dat[k]; } public : vec( int n) { vec ::n = n; dat = new int [n]; } vec( const vec& ref) : dat (0) { copy_from (ref ); } vec& operator = ( const vec& ref) { copy_from (ref ); return * this ; } int & operator [] ( int k) { static int dummy ; return k >=0 && k<n ? dat[k] : dummy ;
23 24
vec x(5); for ( int k=0; k<x.len (); k++) x[k] = 2*k + 1; vec y(x); /* vec y = x */
Universidade Federal do CearaCampus de Quixada
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
Topicos
1 2 3 4 5 6 7
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
Classes Derivadas
C++ permite heranc a, ou seja, novas classes (derivadas) podem ser implementadas a partir de outras classes (primitivas ou de base). C++ permite heranc a simples e multipla. C++ permite hierarquia de classes (tanto no ambito de heranc a simples como multipla).
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
Exemplo de Derivac ao
EXEMPLO-DERIVACAO.cpp
4 5 6 7 8 9 10 11 12 13 14 15 16 17
class point { protected : float x, y; public : point ( float x = 0, float y = 0) { point ::x = x; point ::y = y; } friend ostream & operator << ( ostream & os , const point & p) { os << "(" << p.x << ", " << p.y << ") \n"; return os; } }; class vect : public point { public : vect( float mx , float my) : point (mx , my) {} float len () { return sqrt(x*x + y*y); } };
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
Tipos de Heranc a
uma classe derivada de X entao, Se Y e publico Na heranc a publica o que e em X se mantem privado se mantem privado e o que publico em Y , o que e protegido se mantem protegido. e privados Na heranc a privada todos os recursos de X sao em Y . publico Na heranc a protegida o que e e protegido em X privado em X se se tornam protegidos em Y e o que e privado em Y . mantem
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
Escopo Protegido
acessa recursos Um objeto de uma dada classe so publicos, ou seja, nem o que for privado ou protegido e acess vel. publico O que e ou protegido numa classe base e acess vel a classes derivadas, pelo menos em caso de heranc a publica ou protegida.
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
de um objeto de uma dada classe pertencente a A criac ao de uma hierarquia de classes provoca a criac ao subobjetos, um para cada classe primitiva da hierarquia. dos objetos na hierarquia mencionada ocorre A construc ao desde a classe mais primitiva para a menos primitiva. dos objetos na hierarquia mencionada ocorre A destruc ao desde a classe menos primitiva para a mais primitiva.
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
# include <iostream > using namespace std; struct A { A() { cout << " nasceu A\n"; } A() { cout << " morreu A\n"; } }; struct B: public A { B() { cout << " nasceu B\n"; } B() { cout << " morreu B\n"; } }; struct C: public B { C() { cout << " nasceu C\n"; } C() { cout << " morreu C\n"; } }; int main () { C* p = new C(); delete p; }
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
(overwriting ), numa hierarquia de classes, e Sobreposic ao de um metodo o mecanismo de redenic ao da classe primitiva na classe derivada. precisam ter mesmo prototipo. Metodos sobrepostos nao mais primitivas de metodos Versoes sobrepostos ainda de escopo. podem ser acessados via resoluc ao
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
# include <iostream > struct X { void A() { std :: cout << "A void B() { std :: cout << "B }; struct Y: public X { void A() { std :: cout << "A // void B() { X::B(); } void B( int ) { std :: cout << }; int main () { X x; Y y; x.A(); x.B(); y.A(); y.B(1); y.X::B(); }
em X\n"; } em X\n"; }
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
de chamadas de ou Binding refere-se a associac Ligac ao ao ou metodos func oes a seus respectivos enderec os de memoria. Podem ser, e Precoce ou Ligac Estatica Ligac ao ao : A ligac ao muda em denida em tempo de carregamento e nao tempo de execuc ao. e Tardia ou Ligac Dinamica Ligac ao ao : A ligac ao Uso de ponteiros. denida em tempo de execuc ao.
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
Metodos Virtuais
Metodos sobrepostos numa hierarquia de classes precisam ser denidos como virtuais para habilitar a tardia. ligac ao mais Basta inserir virtual antes do prototipo da versao primitiva do metodo sobreposto na hierarquia para permitir tardia em quaisquer objetos da hierarquia (desde a ligac ao que alocados dinamicamente).
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
class animal { public : virtual void print () { std :: cout << " grrrrr \n"; }; }; class gato: public animal { public : void print () { std :: cout << " miauuuu \n"; }; }; class cachorro : public animal { public : void print () { std :: cout << " auauauauau \n"; }; }; class gato_rajado : public gato { public : void print () { std :: cout << " mrrrrrrriiiaauu \n"; } };
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
Efeito da Virtualizac ao
METODOS-VIRTUAIS.cpp
21 22 23 24 25 26 27 28
animal * a[4] = { new animal (), new gato (), new cachorro (), new gato_rajado () }; for ( int k=0; k <4; k++) { a[k]-> print (); delete a[k]; }
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
Classes Abstratas
aquela que possui um ou mais Uma classe abstrata e metodos sem codigo. Mantidas para servirem de base a classes derivadas e para declarar ponteiros que manipulam objetos dessas tardia). classes (ligac ao impede a A inexistencia de codigo num metodo nao de objetos. instanciac ao
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
Um Membro Abstrato Puro substitui o corpo da func ao por =0. Uma Classe Abstrata Pura possui pelo menos um metodo abstrato puto. podem ser instanciadas. Classes abstratas puras nao Classes derivadas de classes abstratas puras precisam reimplementar os metodos abstratos puros se nao quiserem ser abstratas puras tambem.
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
struct animal { virtual void som () = 0; }; struct gato: animal { void som () { std :: cout << " miiaauu \n"; } }; int main () { // animal x; x.som (); => erro! gato y; animal *p = &y; animal * q = new gato; y.som (); p->som (); q->som (); delete q; }
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
Topicos
1 2 3 4 5 6 7
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
Templates
func ou classes de uso Templates (gabaritos) sao oes generico. Templates recebem tipos e dados como argumentos (argumentos-template). gera codigo Um template em si nao de maquina na compilac ao. template so sera O codigo de maquina de uma func ao gerado se houver pelo menos uma chamada a ela. chamadas com argumentos-template distintos geram distintos. codigos de maquina de func oes sera O codigo de maquina de uma classe template so de objeto gerado se houver pelo menos uma denic ao desta classe. Objetos com argumentos-template distintos geram codigos de maquina de classes distintos.
Prof. Ricardo Reis Linguagem C++ Universidade Federal do CearaCampus de Quixada
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
Classes Template I
CLASSES-TEMPLATES.cpp
4 5 6 7 8 9 10 11 12 13 14 15 16 17
template < typename T> class pilha { T *dat; int capacidade , altura ; public : pilha ( int c) : capacidade (c), altura (0) { dat = new T[c]; } pilha () { delete [] dat; } void push(T x); T pop (); T top () { return dat[altura -1]; } bool empty () { return altura ==0; } bool full () { return altura == capacidade ; } };
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
Classes Template II
CLASSES-TEMPLATES.cpp
19 20 21 22 23 24 25 26 27 28 29
template < typename T> void pilha <T >:: push(T x) { if (altura < capacidade ) dat[ altura ++]=x; } template < typename T> T pilha <T >:: pop () { if (altura >0) return dat[-- altura ]; }
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
pilha < char > P (40); char s[] = " abcdefghijklmn "; for ( int k=0; s[k]; k++) P.push( s[k] ); while ( !P. empty () ) { cout << P.pop (); }
CLASSES-TEMPLATES.cpp
37 38 39 40
pilha < int > Q (100); for ( int x = 123; x >0; x/=2) Q.push(x % 2); while ( !Q. empty () ) { cout << Q.pop (); } cout << endl;
Universidade Federal do CearaCampus de Quixada
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
Topicos
1 2 3 4 5 6 7
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
A Classe String
CLASSE-STRING.cpp
7 8 9 10 11 12 13 14 15 16 17 18
string x = "ola mundo !"; for ( int k = x. length () -1; k >=0; k--) cout << x[k]; cout << endl; x[9] = ; x += " grande !"; x. replace (4, 5, " ceara "); cout << x << endl; cout << "\ nEscreva seu nome: "; cin >> x; for ( string :: iterator it = x. begin (); it != x.end (); it ++) cout << *it << " ";
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
A Classe List
CLASSE-LIST.cpp
7 8 9 10 11 12 13 14 15 16 17 18 19 20
list < int > a; for ( int k = 100; k >0; k/=2) a. push_back (k); // _front while ( !a. empty () ) { cout << a.back () << " "; a. pop_back (); // _front } list <string > x; string v[] = {"ana", " paulo ", " claudio ", "ana", " joana ", "eva"}; for ( int k = 0; k <6; k++) x. push_front ( v[k] ); x. unique (); x.sort (); for (list <string >:: iterator it = x. begin (); it != x.end (); it ++) cout << *it << endl;
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
A Classe Vector
CLASSE-VECTOR.cpp
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
ostream & operator << ( ostream & os , vector < int >& r) { for (vector < int >:: iterator it = r. begin (); it != r.end (); it ++) os << *it << " "; return os; } int main () { vector < int > x(5); //{7, 9, 11, 6}; x[0] = 12; x[1] = 9; x[2] = -7; x[3] = 2; x[4] = 78; x[5] = 67; // sem efeito for ( int k=0; k<x.size (); k++) cout << x[k] << " "; cout << endl << x << endl; while ( !x. empty () ) { cout << x.back () << " "; x. pop_back (); } }
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
# include <iostream > # include <fstream > # include <string > using namespace std; int main () { string nomes [] = {" maria ", "joao", " daniel ", " amanda ", " pedro ", " marta ", " carlos ", "ana"}; ofstream f(" nomes "); for ( int k=0; k <8; k++) f << nomes [k] << " "; f. close (); ifstream g(" nomes "); while ( !g.eof () ) { string x; g >> x; cout << x << endl; } g. close (); }
Preliminares
Elementos Basicos
Classes
Sobrecarga
Heranc a
Templates
Strings e Conteiners
A Classe Map
CLASSE-MAP.cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
# include <iostream > # include <fstream > # include <string > # include <map > using namespace std; int main () { map <string , int > tab; ifstream f(" nomes .txt"); for ( string x; !f.eof (); ) { f >> x; tab[x]++; } f. close (); for (map <string , int >:: iterator it = tab. begin (); it != tab.end (); it ++) cout << it -> first << \t << it -> second << endl; }
Universidade Federal do CearaCampus de Quixada