Logo Passei Direto
Buscar

Lista de Exercícios c++

User badge image

Enviado por Jonathas Alves em

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

temcla01.cpp
#include <iostream>
using namespace std;
class xnumeros // Declara‡Æo da classe xnumeros
 {
 public:
 xnumeros(); // Prot¢tipo do construtor
 ~xnumeros(); // Prot¢tipo do destrutor
 void atrib(); // Prot¢tipo do m‚todo atrib()
 void exibe(); // Prot¢tipo do m‚todo exibe()
 int soma(); // Prot¢tipo do m‚todo soma()
 private:
	int matriz[9];
 };
int main ()
{
 xnumeros numeros1; // Cria o objeto numeros1
 numeros1.atrib(); // Chama o m‚todo atrib()
 numeros1.exibe(); // Chama o m‚todo exibe()
 // Chama o m‚todo soma()
 cout << "Somat¢rio: " << numeros1.soma() << endl;
 return 0;
}
// Defini‡Æo do m‚todo atrib(). Atribui os valores de 0 a 8
// ao array
void xnumeros :: atrib()
{
 int i;
 for (i = 0;i < 9;i++)
 matriz[i] = i;
}
// Defini‡Æo do m‚todo exibe(). Exibe os valores do array
void xnumeros :: exibe() 
{
 int i;
 cout << "Valores: ";
 for (i = 0; i < 9; i++)
 cout << matriz[i] << " ";
 cout << endl;
}
// Defini‡Æo do m‚todo soma(). Soma os valores do array
int xnumeros :: soma() 
{
 int somat = 0;
 for (int i = 0; i < 9; i++)
 somat = somat + matriz[i];
 return somat;
}
xnumeros :: xnumeros() // Defini‡Æo do construtor
{
}
xnumeros :: ~xnumeros() // Defini‡Æo do destrutor
{
}
arqbin01.cpp
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
 int vetor[10],i;
 for (i = 0;i < 10;i++)
 vetor[i] = i;
 ofstream saida1("bin1",ios_base::out | ios_base::binary);
 saida1.write((char *) &vetor,sizeof(int) * 10);
 saida1.close(); // Fecha o arquivo
 for (i = 0;i < 10;i++)
 vetor[i] = 0;
 ifstream entrada("bin1",ios_base::in | ios_base::binary);
 entrada.read((char *) &vetor,sizeof(int) * 10);
 for (i = 0;i < 10;i++)
 cout << vetor[i] << " ";
 cout << endl;
 entrada.close(); // Fecha o arquivo
 return 0;
}
arqbin02.cpp
#include <iostream>
#include <fstream>
#include <cctype> // Para a fun‡Æo toupper()
using namespace std;
int main()
{
 struct pessoa // Gabarito de estrutura
	{
 int idade;
 char nome[20];
 float salario1;
	};
 pessoa pessoa1; // Vari vel-estrutura pessoa1
 char resp = 'S';
 short int i,qtde = 0;
 ofstream saida1("bin2",ios_base::out | ios_base::binary);
 while (resp == 'S')
 {
 cout << " Idade: ";
 cin >> pessoa1.idade;
 cin.get();
 cout << " Nome: ";
 cin.get(pessoa1.nome,20);
 cout << " Sal rio: ";
 cin >> pessoa1.salario1;
 saida1.write((char *) &pessoa1,sizeof(pessoa1));
 qtde++;
 cout << "Continuar? (S/N): ";
 cin >> resp;
 resp = toupper(resp);
 }
 saida1.close();
 ifstream entrada("bin2",ios_base::in | ios_base::binary);
 cout << endl;
 cout << "Dados do arquivo";
 for (i = 0;i < qtde;i++)
 {
 entrada.read((char *) &pessoa1,sizeof(pessoa1));
 cout << endl;
 cout << " Idade: " << pessoa1.idade << endl;
 cout << " Nome: " << pessoa1.nome << endl;
 cout << " Sal rio: " << pessoa1.salario1 << endl;
 }
 entrada.close();
 return 0;
}
arqbin03.cpp
#include <iostream>
#include <fstream>
#include <cctype> // Para fun‡Æo toupper()
using namespace std;
class pessoa // Declara‡Æo da classe pessoa
 {
 public:
 ~pessoa(); // Prot¢tipo do destrutor
 void le_dados(); // Prot¢tipo do m‚todo le_dados()
 void exibe(); // Prot¢tipo do m‚todo exibe()
 private:
 char nome[20];
 short int idade;
 };
int main()
{
 char resp = 'S';
 short int i,qtde = 0;
 // Cria o objeto pessoa1. Utiliza o construtor default
 pessoa pessoa1;
 ofstream saida1("bin3",ios_base::out | ios_base::binary);
 while (resp == 'S')
 {
 pessoa1.le_dados();
 saida1.write((char *) &pessoa1,sizeof(pessoa1));
 qtde++;
 cout << "Continuar? (S/N): ";
 cin >> resp;
 resp = toupper(resp);
 cin.get();
 }
 saida1.close();
 ifstream entrada("bin3",ios_base::in | ios_base::binary);
 cout << endl;
 cout << "Dados do arquivo";
 for (i = 0;i < qtde;i++)
 {
 cout << endl;
 entrada.read((char *) &pessoa1,sizeof(pessoa1));
 pessoa1.exibe();
 }
 entrada.close();
 return 0;
}
// Defini‡Æo do m‚todo le_dados()
void pessoa :: le_dados()
{
 cout << " Nome: ";
 cin.get(nome,20);
 cout << " Idade: ";
 cin >> idade;
}
// Defini‡Æo do m‚todo exibe()
void pessoa :: exibe()
{ 
 cout << " Nome: " << nome << endl;
 cout << " Idade: " << idade << endl;
}
// Defini‡Æo do destrutor
pessoa :: ~pessoa() 
{
}
arqinp01.cpp
#include <fstream>
#include <iostream>
using namespace std;
int main()
{
 char Lin1[16], Lin2[16], Lin3[16];
 ifstream arqtexto("teste2");
 arqtexto.getline(Lin1,16); // Leitura com getline()
 arqtexto.getline(Lin2,16);
 arqtexto.getline(Lin3,16);
 arqtexto.close(); 
 cout << Lin1 << endl;
 cout << Lin2 << endl;
 cout << Lin3 << endl;
 return 0;
}
arqinp02.cpp
#include <fstream>
#include <iostream>
using namespace std;
int main()
{
 char linha[16];
 ifstream arqtexto("teste2");
 arqtexto.getline(linha,16); // Leitura com getline()
 while (arqtexto.eof() == false) // Teste de eof
 {
 cout << linha << endl;
 arqtexto.getline(linha,16);
 }
 arqtexto.close();
 return 0;
}
arqinp03.cpp
#include <fstream>
#include <iostream>
using namespace std;
int main()
{
 char linha[16];
 ifstream arqtexto("teste2");
 arqtexto >> linha; // Leitura com o operador >>
 while (arqtexto.eof() == false) // Teste de eof
 { 
 cout << linha << endl;
 arqtexto >> linha;
 }
 arqtexto.close();
 return 0;
}
arqinp04.cpp
#include <fstream>
#include <iostream>
using namespace std;
int main()
{
 char ch;
 ifstream arqtexto("teste2");
 arqtexto >> ch; // Leitura com o operador >>
 while (arqtexto.eof() == false) // Teste de eof
 {
 cout << ch << endl;
 arqtexto >> ch;
 }
 arqtexto.close();
 return 0;
}
arqout01.cpp
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
 ofstream arqtexto("teste2");
 arqtexto << "Linha 1" << endl;
 arqtexto << "Linha 2" << endl;
 arqtexto << "Linha 3" << endl;
 arqtexto.close();
 return 0;
}
arqout02.cpp
#include <iostream>
#include <fstream>
#include <cctype> // Para a fun‡Æo toupper()
using namespace std;
int main()
{
 char linha[16];
 char resp = 'S';
 ofstream arqtexto("teste2",ios_base::app);
 while (resp == 'S')
 {
 cout << "Digite uma linha de texto" << endl;
 cin.get(linha,16); // Ou cin.getline(linha,16);
 arqtexto << linha << endl;
 cout << "Continuar? (S/N): ";
	cin >> resp;
	resp = toupper(resp);
 cin.get();
 }
 arqtexto.close();
 return 0;
}
array01.cpp
#include <iostream>
using namespace std;
int main()
{
 int numeros[10],k;
 for (k = 0;k < 10;k++)
 numeros[k] = k + 1;
 for (k = 0;k < 10;k++)
 cout << numeros[k] << " ";
 cout << endl;
 return 0;
}
arraya01.cpp
#include <iostream>
using namespace std;
int somar(int [ ],int qtd); // Prot¢tipo da fun‡Æo somar()
int main()
{
 const int Kelem = 5; // Constante simb¢lica
 int pares[Kelem] = {2,4,6,8,10},result;
 result = somar(pares,Kelem); // Chama a fun‡Æo somar()
 cout << "Somat¢rio: " << result << endl;
 return 0;
}
int somar(int xpares[ ],int qtde1) // Defini‡Æo da fun‡Æo somar()
{
 int k,soma = 0;
 for (k = 0;k < qtde1;k++)
 soma = soma + xpares[k];
 return soma;
}
arraya02.cpp
#include <iostream>
using namespace std;
int somar(const int [ ]); // Prot¢tipo da fun‡Æo somar()
const
int Kelem = 5; // Constante simb¢lica externa
int main()
{
 int pares[Kelem] = {2,4,6,8,10},result;
 result = somar(pares);
 cout << "Somat¢rio: " << result << endl;
 return 0;
}
int somar(const int xpares[ ]) // Defini‡Æo da fun‡Æo somar()
{
 int k,soma = 0;
 for (k = 0;k < Kelem;k++)
 soma = soma + xpares[k];
 return soma;
}
arrayb01.cpp
#include <iostream>
using namespace std;
int main()
{
 int j,k,num = 0;
 int valores[4][3];
 for (j = 0;j < 4;j++) // for externo
 for (k = 0;k < 3;k++) // for interno
	 {
	 num++;
	 valores[j][k] = num;
	 }
 return 0;
}
arrayb02.cpp
#include <iostream>
using namespace std;
int somar(int [][2],int qtd); // Prot¢tipo da fun‡Æo somar()
int main()
{
 const int Kelem = 3; // Constante simb¢lica
 int pares[Kelem][2] = { {2,4}, {6,8}, {10,12} },result;
 result = somar(pares,Kelem); // Chama a fun‡Æo somar()
 cout << "Somat¢rio: " << result << endl;
 return 0;
}
int somar(int xpares[][2],int qtde1) // Defini‡Æo da fun‡Æo somar()
{
 int j,k,soma = 0;
 for (k = 0;k < qtde1;k++)
 for (j = 0;j < 2;j++)
 soma = soma + xpares[k][j];
 return soma;
}
arrayr01.cpp
#include <iostream>
using namespace std;
void somar_1(int &); // Prot¢tipo da fun‡Æo somar_1()
int main()
{
 int pares[4] = {10, 20, 30, 40};
 somar_1(pares[2]); // Chama a fun‡Æo somar_1()
 return 0;
}
void somar_1(int & total) // Defini‡Æo da fun‡Æo somar_1()
{
 total = total + 1;
 cout << total << endl;
}
arrobj01.cpp
#include <iostream>
#include <cstring> // Para a fun‡Æo strcpy()
using namespace std;
class carro // Declara‡Æo da classe carro
 {
 public:
 void atrib(); // Prot¢tipo do m‚todo atrib()
 void exibe(int); // Prot¢tipo do m‚todo exibe()
 private:
	 char modelo[7];
	 int anofab;
 };
int main()
{
 carro carros[2]; // Cria um array de objetos com 2 elementos
 carros[0].atrib(); // Chama o m‚todo atrib()
 carros[1].atrib(); // Chama o m‚todo atrib()
 return 0;
}
// Defini‡Æo do m‚todo atrib(). Atribui valores ao array de objetos
void carro :: atrib()
{
 static int numcar = 0;
 strcpy(modelo, "Gol");
 anofab = 2001;
 numcar++;
 exibe(numcar);
}
// Defini‡Æo do m‚todo exibe(). Exibe os valores do array de
// objetos carros
void carro :: exibe(int numcar1)
{
 cout << "Objeto " << numcar1 << endl;
 cout << "Modelo: " << modelo << endl;
 cout << "Ano: " << anofab << endl << endl;
}
arrobj02.cpp
#include <iostream>
#include <cstring> // Para a fun‡Æo strcpy()
using namespace std;
class carro // Declara‡Æo da classe carro
 {
 public:
 carro(char *, int); // Prot¢tipo do construtor
 ~carro(); // Prot¢tipo do destrutor
 void exibe(); // Prot¢tipo do m‚todo exibe()
 private:
	 char modelo[7];
	 int anofab;
 };
const int Kqtd = 2; // Constante simb¢lica
int main()
{
 carro carros[Kqtd] =
	 {
 carro("Ka",2000),
 carro("Astra",2001),
	 };
 for (int k = 0;k < Kqtd;k++)
 {
 carros[k].exibe();
 cout << endl;
 }
 return 0;
}
// Defini‡Æo do m‚todo exibe(). Exibe os valores do array de
// objetos carros
void carro :: exibe()
{
 cout << "Modelo: " << modelo << endl;
 cout << "Ano: " << anofab << endl;
}
// Defini‡Æo do construtor
carro :: carro(char * model1,int ano1)
{
 strcpy(modelo,model1);
 anofab = ano1;
}
carro :: ~carro() // Defini‡Æo do destrutor
{
}
bitwis01.cpp
#include <iostream>
using namespace std;
int main()
{
 short int item = 12;
 cout << "Antes do deslocamento: " << item << endl;
 item = item << 1;
 cout << "Depois do deslocamento: " << item << endl;
 return 0;
}
bitwis02.cpp
#include <iostream>
using namespace std;
int main()
{
 unsigned short int item = 12;
 cout << "Antes do deslocamento: " << item << endl;
 item = item >> 1;
 cout << "Depois do deslocamento: " << item << endl;
 return 0;
}
bitwis03.cpp
#include <iostream>
using namespace std;
int main()
{
 unsigned short int valor1 = 12;
 cout << "Antes da nega‡Æo: " << valor1 << endl;
 valor1 = ~valor1;
 cout << "Depois da nega‡Æo: " << valor1 << endl;
 return 0;
}
bitwis04.cpp
#include <iostream>
using namespace std;
int main()
{
 signed short int valor1 = 12;
 cout << "Antes da nega‡Æo: " << valor1 << endl;
 valor1 = ~valor1;
 cout << "Depois da nega‡Æo: " << valor1 << endl;
 return 0;
}
bitwis05.cpp
#include <iostream>
using namespace std;
int main()
{
 unsigned short int valor1 = 51,valor2 = 89,valor3;
 valor3 = valor1 | valor2;
 cout << "valor1 | valor2: " << valor3 << endl;
 return 0;
}
bitwis06.cpp
#include <iostream>
using namespace std;
int main()
{
 unsigned short int valor1 = 51,valor2 = 89,valor3;
 valor3 = valor1 ^ valor2;
 cout << "valor1 ^ valor2: " << valor3 << endl;
 return 0;
}
bitwis07.cpp
#include <iostream>
using namespace std;
int main()
{
 unsigned short int valor1 = 51,valor2 = 89,valor3;
 valor3 = valor1 & valor2;
 cout << "valor1 & valor2: " << valor3 << endl;
 return 0;
}
cladin01.cpp
#include <iostream>
using namespace std;
class xstring // Declara‡Æo da classe xstring
 {
 public:
 ~xstring(); // Prot¢tipo do destrutor
 void le_nome(); // Prot¢tipo do m‚todo le_nome()
 void exibe(); // Prot¢tipo do m‚todo exibe()
 private:
 char * texto; // Ponteiro para o string a ser digitado
 // constante simb¢lica com escopo de classe
 static const int comp = 21;
 };
int main()
{
 xstring nome; // Cria o objeto nome
 nome.le_nome(); // Objeto nome chama o m‚todo le_nome()
 cout << endl;
 nome.exibe(); // Objeto nome chama o m‚todo exibe()
 return 0;
}
// Defini‡Æo do m‚todo le_nome(). Lˆ dados do teclado.
void xstring :: le_nome()
{
 texto = new char[comp];
 cout << "Digite o seu nome (at‚ 20 caracteres): ";
 cin.get(texto,comp);
}
// Defini‡Æo do m‚todo exibe(). Exibe o valor do objeto nome
void xstring :: exibe()
{
 cout << "Ol , " << texto << endl;
}
xstring :: ~xstring() // Defini‡Æo do destrutor
{
 cout << "Objeto " << texto << " destru¡do" << endl;
 delete [ ] texto;
}
clamut01.cpp
#include <iostream>
#include <cstring> // Para a fun‡Æo strcpy()
using namespace std;
class carro // Declara‡Æo da classe carro
 {
 public:
	 char modelo[7];
 mutable int anofab;
 void exibe() const; // Prot¢tipo do m‚todo const exibe()
 };
int main()
{
 carro carro1; // Cria o objeto carro1
 strcpy(carro1.modelo,"Gol");
 carro1.anofab = 1999;
 cout << "Objeto carro1" << endl;
 carro1.exibe(); // Objeto carro1 chama o m‚todo exibe()
 return 0;
}
void carro :: exibe() const // Exibe os valores do objeto carro1
{
 cout << "Modelo: " << modelo << endl;
 anofab = 8888;
 cout << "Ano: " << anofab << endl;
}
class01.cpp
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
 class carro // Declara‡Æo de classe na fun‡Æo main()
 {
 public: // Se‡Æo public
 char modelo[7]; // Vari veis-membro p£blicas
 int anofab;
 // M‚todo p£blico definido dentro da classe
 void exibe()
	 {
	 cout << "Modelo: " << modelo << endl;
	 cout << "Ano: " << anofab << endl;
	 }
 };
 carro carro1; // Cria‡Æo do objeto carro1
 // Atribui valores ao objeto carro1
 strcpy(carro1.modelo,"Gol");
 carro1.anofab = 1999;
 cout << "Objeto carro1" << endl;
 carro1.exibe(); // Objeto carro1 chama o m‚todo exibe()
 return 0;
}
class02.cpp
#include <iostream>
#include <cstring>
using namespace
std;
class carro // Declara‡Æo da classe carro (externa)
 {
 public: // Se‡Æo public
 char modelo[7]; // Vari veis-membro p£blicas
	 int anofab;
 // Prot¢tipo do m‚todo p£blico exibe()
 void exibe();
 };
int main()
{
 carro carro1; // Cria o objeto carro1
 // Atribui valores ao objeto carro1
 strcpy(carro1.modelo,"Gol");
 carro1.anofab = 1999;
 cout << "Objeto carro1" << endl;
 carro1.exibe(); // Objeto carro1 chama o m‚todo exibe()
 return 0;
}
// Defini‡Æo do m‚todo exibe(), externo … sua classe. Exibe os
// valores do objeto carro1
void carro :: exibe()
{
 cout << "Modelo: " << modelo << endl;
 cout << "Ano: " << anofab << endl;
}
class03.cpp
#include <iostream>
using namespace std;
class carro // Declara‡Æo da classe carro
 {
 public: // Se‡Æo public
 void atrib(); // Prot¢tipo do m‚todo atrib()
 void exibe(); // Prot¢tipo do m‚todo exibe()
 private: // Se‡Æo private
 char modelo[7]; // Vari veis-membro privadas
	 int anofab;
	 int numcar;
 };
int main()
{
 carro carro1; // Cria o objeto carro1
 carro1.atrib(); // Objeto carro1 chama o m‚todo atrib()
 carro1.exibe(); // Objeto carro1 chama o m‚todo exibe()
 return 0;
}
// Lˆ dados do teclado e os atribui ao objeto carro1
void carro :: atrib()
{
 cout << "Digite os dados do carro n§ ";
 cin >> numcar;
 cout << "Modelo: ";
 cin >> modelo;
 cout << "Ano: ";
 cin >> anofab;
}
// Exibe os valores do objeto carro1
void carro :: exibe()
{
 cout << endl;
 cout << "Dados do carro n§ " << numcar << endl;
 cout << "Modelo: " << modelo << endl;
 cout << "Ano: " << anofab << endl;
}
class04.cpp
#include <iostream>
#include <cstring>
using namespace std;
class carro // Declara‡Æo da classe carro
 {
 public: 
	 char modelo[7];
 void exibe1(); // Prot¢tipo do m‚todo exibe1()
 void exibe2(); // Prot¢tipo do m‚todo exibe2()
 };
int main()
{
 carro carro1; // Cria o objeto carro1
 // Atribui valores ao objeto carro1
 strcpy(carro1.modelo,"Gol");
 carro1.exibe1(); // Objeto carro1 chama o m‚todo exibe1()
 return 0;
}
// Exibe os valores do objeto carro1
void carro :: exibe1()
 {
 cout << "Objeto carro1 - m‚todo exibe1()" << endl;
 cout << "Modelo: " << modelo << endl;
 carro::exibe2(); // Chamada qualificada
 exibe2(); // Chamada nÆo qualificada
 }
// Exibe os valores do objeto carro1
void carro :: exibe2()
 {
 cout << "Objeto carro1 - m‚todo exibe2()" << endl;
 cout << "Modelo: " << modelo << endl;
 }
class05.cpp
#include <iostream>
#include <cstring>
using namespace std;
class carro // Declara‡Æo da classe carro
 {
 public:
 carro(char *,int); // Prot¢tipo do construtor
 void exibe(); // Prot¢tipo do m‚todo exibe()
 private: // Vari veis-membro privadas
	 char modelo[7];
	 int anofab;
 };
int main()
{
 // Cria o objeto carro1, chamando o construtor
 carro carro1("Corsa",1999);
 carro1.exibe(); // Objeto carro1 chama o m‚todo exibe()
 return 0;
}
// Exibe os valores do objeto carro1
void carro :: exibe()
{
 cout << "Modelo: " << modelo << endl;
 cout << "Ano: " << anofab << endl;
}
// Defini‡Æo do construtor. Inicializa o objeto carro1
carro :: carro (char * modelo1,int ano1)
{
 strcpy(modelo,modelo1);
 anofab = ano1;
}
class06.cpp
#include <iostream>
#include <cstring>
using namespace std;
class carro // Declara‡Æo da classe carro
 {
 public:
 carro(char *,int); // Prot¢tipo do construtor
 ~carro(); // Prot¢tipo do destrutor
 void exibe(); // Prot¢tipo do m‚todo exibe()
 private:
 char modelo[7];
 int anofab;
 };
int main()
{
 // Cria os objetos carro1 e carro2, chamando o construtor
 carro carro1("Corsa", 1999);
 carro carro2("Celta", 2000);
 carro1.exibe(); // Objeto carro1 chama o m‚todo exibe()
 carro2.exibe(); // Objeto carro2 chama o m‚todo exibe()
 return 0;
}
// Exibe os valores dos objetos carro1 e carro2
void carro :: exibe()
{
 cout << "Modelo: " << modelo << endl;
 cout << "Ano: " << anofab << endl << endl;
}
// Defini‡Æo do construtor
carro :: carro (char * modelo1,int ano1)
{
 strcpy(modelo,modelo1);
 anofab = ano1;
}
carro :: ~carro() // Defini‡Æo do destrutor
{
 // Os objetos sÆo destru¡dos na ordem inversa em que foram criados.
 // A linha seguinte ilustra a execu‡Æo do destrutor. Um destrutor nÆo
 // precisa ter instru‡äes
 cout << "Destruindo o objeto ... " << modelo << endl;
} 
class07.cpp
#include <iostream>
#include <cstring>
using namespace std;
class carro // Declara‡Æo da classe carro
 {
 public:
 // Prot¢tipo do construtor default com valores default
 carro(char * = "",int = 0);
 ~carro(); // Prot¢tipo do destrutor
 void exibe(); // Prot¢tipo do m‚todo exibe()
 private:
	 char modelo[7];
	 int anofab;
 };
int main()
{
 // Cria o objeto carro1, chamando o construtor
 carro carro1("Corsa", 1999);
 // Cria o objeto carro2 sem incializ -lo, por causa do construtor default
 carro carro2;
 carro1.exibe();
 carro2.exibe();
 return 0;
}
// Exibe os valores dos objetos carro1 e carro2
void carro :: exibe()
{
 cout << "Modelo: " << modelo << endl;
 cout << "Ano: " << anofab << endl << endl;
}
// Defini‡Æo do construtor
carro:: carro (char * model1,int ano1)
{
 strcpy(modelo,model1);
 anofab = ano1;
}
carro :: ~carro() // Defini‡Æo do destrutor
{
 cout << "Destruindo o objeto ... " << modelo << endl;
}
class08.cpp
#include <iostream>
#include <cstring> // Para a fun‡Æo strcpy()
using namespace std;
class carro // Declara‡Æo da classe carro
 {
 public:
 carro(char *, int); // Prot¢tipo do construtor
 carro(); // Prot¢tipo do construtor default
 ~carro(); // Prot¢tipo do destrutor
 void exibe(); // Prot¢tipo do m‚todo exibe()
 private:
	 char modelo[7];
	 int anofab;
 };
int main()
{
 // Cria objeto, chamando o construtor nÆo-default
 carro carro1("Corsa", 1999);
 // Cria o objeto carro2 sem inicializ -lo, por causa do construtor
 // default
 carro carro2;
 carro1.exibe();
 carro2.exibe();
 return 0;
}
void carro :: exibe()
{
 cout << "Modelo: " << modelo << endl;
 cout << "Ano: " << anofab << endl << endl;
}
// Defini‡Æo do construtor nÆo-default
carro :: carro (char * model1,int ano1)
{
 strcpy(modelo,model1);
 anofab = ano1;
}
carro :: carro() // Defini‡Æo do construtor default
{
}
carro :: ~carro() // Defini‡Æo do destrutor
{
 cout << "Destruindo o objeto ... " << modelo << endl;
}
class09.cpp
#include <iostream>
#include <cstring>
using namespace std;
class carro // Declara‡Æo da classe carro
 {
 public:
	carro(char *,char *); // Prot¢tipo do construtor
 ~carro(); // Prot¢tipo do destrutor
 void exibe(); // Prot¢tipo do m‚todo exibe()
	char marca[12];
 private:
	 char modelo[7];
 };
void lista(carro); // Prot¢tipo da fun‡Æo nÆo-membro lista()
void lista(carro *);
int main()
{
 // Cria o objeto carro1, chamando o construtor
 carro carro1("GM","Corsa");
 cout << "Acesso pela fun‡Æo-membro exibe()" << endl;
 carro1.exibe();
 cout << endl;
 cout << "Acesso pela fun‡Æo nÆo-membro lista()" << endl;
 lista(carro1); // Objeto passado como argumento
 return 0;
}
void carro :: exibe() // Defini‡Æo do m‚todo exibe()
{
 cout << "Marca: " << marca << endl;
 cout << "Modelo: " << modelo << endl;
}
void lista(carro c1) // Defini‡Æo da fun‡Æo nÆo-membro lista()
{
 c1.exibe();
 cout << "Marca: " << c1.marca
<< endl;
}
carro:: carro (char * marc1,char * model1) // Defini‡Æo do construtor
{
 strcpy(marca,marc1);
 strcpy(modelo,model1);
}
carro:: ~carro () // Defini‡Æo do destrutor
{
}
classm01.cpp
#include <iostream>
using namespace std;
void loop(); // Prot¢tipo da fun‡Æo loop()
int main()
{
 cout << "Primeira chamada. ";
 loop();
 cout << "Segunda chamada. ";
 loop();
 return 0;
}
void loop() // Defini‡Æo da fun‡Æo loop()
{
 int cont = 1; // Vari vel autom tica
 static int somat = 0; // Vari vel est tica interna
 for (;cont < 6;cont++)
 somat = somat + cont;
 cout << "Somat¢rio = " << somat << endl;
}
classm51.cpp
#include <iostream>
using namespace std;
float taxa = 0.12,saldo = 2.5;
void exibe();
int main()
{
 exibe();
 return 0;
}
classm52.cpp
#include <iostream>
using namespace std;
extern float taxa,saldo;
void exibe()
{
 cout << "A taxa ‚ " << taxa << endl;
 cout << "O saldo ‚ " << saldo << endl;
}
contin01.cpp
#include <iostream>
using namespace std;
int main()
{
 int numero;
 int somat = 0;
 for (int k = 1;k < 6;k++)
 {
 cout << "Digite um n£mero inteiro: ";
 cin >> numero;
 if (numero < 0)
	 continue;
 somat = somat + numero;
 }
 cout << "Somat¢rio: " << somat << endl;
 return 0;
}
copcon01.cpp
#include <iostream>
#include <cstring>
using namespace std;
class hard // Declara‡Æo da classe hard
 {
 public:
 hard(char *,float); // Prot¢tipo do construtor
 ~hard(); // Prot¢tipo do destrutor
 void exibe(); // Prot¢tipo do m‚todo exibe()
 private:
 char marca[20];
 float clock;
 };
int main()
{
 // Cria o objeto intel1, chamando o construtor
 hard intel1("Intel Pentium 4",2.2);
 intel1.exibe(); // Objeto intel1 chama o m‚todo exibe()
 // Cria e inicializa novos objetos a partir do objeto intel1, chamando o
 // construtor de c¢pia
 hard intel2(intel1);
 hard intel3 = intel1;
 hard intel4 = hard(intel1);
 hard *ptr = new hard(intel1);
 intel2.exibe(); // Objeto intel2 chama o m‚todo exibe()
 intel3.exibe(); // Objeto intel3 chama o m‚todo exibe()
 intel4.exibe(); // Objeto intel4 chama o m‚todo exibe()
 ptr -> exibe(); // Objeto an“nimo chama o m‚todo exibe()
 delete ptr;
 return 0;
}
void hard :: exibe() // Defini‡Æo do m‚todo exibe()
{
 cout << "Marca: " << marca << endl;
 cout << "Clock: " << clock << endl;
}
hard :: hard (char * marca1,float clock1) // Defini‡Æo do construtor
{
 strcpy(marca,marca1);
 clock = clock1;
}
hard :: ~hard() // Defini‡Æo do destrutor
{
 cout << "Destruindo o objeto ... " << marca << endl;
} 
copcon02.cpp
#include <iostream>
#include <cstring>
using namespace std;
class hard // Declara‡Æo da classe hard
 {
 public:
 hard(char *,float); // Prot¢tipo do construtor
 ~hard(); // Prot¢tipo do destrutor
 char marca[20];
 float clock;
 };
void exibe(hard); // Prot¢tipo da fun‡Æo exibe()
int main()
{
 // Cria o objeto intel1, chamando o construtor
 hard intel1("Intel Pentium 4",2.2);
 exibe(intel1); // Chama a fun‡Æo exibe()
 return 0;
}
hard :: hard (char * marca1,float clock1) // Defini‡Æo do construtor
{
 strcpy(marca,marca1);
 clock = clock1;
}
hard :: ~hard() // Defini‡Æo do destrutor
{
 cout << "Destruindo o objeto ... " << marca << endl;
}
void exibe(hard intel11) // Defini‡Æo da fun‡Æo exibe()
{
 cout << "Marca: " << intel11.marca << endl;
 cout << "Clock: " << intel11.clock << endl;
}
desvir01.cpp
#include <iostream>
using namespace std;
class base1 // Declara‡Æo da classe-base
 {
 public:
 ~base1() // Defini‡Æo do destrutor nÆo-virtual
 {
 cout << "Destrutor classe-base" << endl;
 }
 };
// Declara‡Æo da classe derivada
class derivada1 : public base1
 {
 public:
 ~derivada1() // Defini‡Æo do destrutor
 {
 cout << "Destrutor classe derivada" << endl;
 }
 };
int main()
{
 base1 *ptr = new derivada1;
 delete ptr;
 return 0;
}
enum01.cpp
#include <iostream>
using namespace std;
int main()
{
 enum {azul,preto,vermelho};
 int cod_cor;
 cout << "Digite o c¢digo da cor (de 0 a 2): ";
 cin >> cod_cor;
 switch (cod_cor)
 {
 case azul: cout << "Azul" << endl; break;
 case preto: cout << "Preto" << endl; break;
 case vermelho: cout << "Vermelho" << endl; break;
 }
 return 0;
}
escape01.cpp
#include <iostream>
using namespace std;
int main ()
{
 char letra1 = '\x043'; // Seq�ˆncia de escape hexadecimal
 char letra2 = '\103'; // Seq�ˆncia de escape octal
 cout << letra1 << "\n";
 cout << letra2 << "\n";
 cout << "\x043\x02B\x02B" << endl;
 return 0;
}
esfor01.cpp
#include <fstream>
using namespace std;
int main()
{
 int numero = 12;
 float valor = -13.5;
 char letra = 'Z';
 char texto[9] = "Ano 2004";
 ofstream saida1("teste1"); // Abre o arquivo
 // Grava no arquivo teste
 saida1 << numero << endl;
 saida1 << valor << endl;
 saida1 << letra << endl;
 saida1 << texto << endl;
 saida1.close(); // Fecha o arquivo
 return 0;
}
esfor02.cpp
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
 int numero;
 float valor;
 char letra;
 char texto[9];
 ifstream entrada("teste1"); // Abre o arquivo
 entrada >> numero >> valor >> letra >> texto;
 cout << numero << endl;
 cout << valor << endl;
 cout << letra << endl;
 cout << texto << endl;
 entrada.close(); // Fecha o arquivo
 return 0;
}
exc01.cpp
#include <iostream>
using namespace std;
int main()
{
 int dividendo,divisor,quociente;
 cout << "Digite o dividendo: ";
 cin >> dividendo;
 cout << "Digite o divisor: ";
 cin >> divisor;
 try // In¡cio do bloco try
 {
 if (divisor == 0)
 throw "Tentativa de divisÆo por zero";
 quociente = dividendo / divisor;
 cout << "Quociente: " << quociente << endl;
 return 0;
 } // Fim do bloco try
 catch (const char * msg) // In¡cio do bloco catch
 {
 cout << msg << endl;
 } // Fim do bloco catch
 return 1;
}
exc02.cpp
#include <iostream>
using namespace std;
int main()
{
 int dividendo,divisor,quociente;
 cout << "Digite o dividendo: ";
 cin >> dividendo;
 cout << "Digite o divisor: ";
 cin >> divisor;
 try // Bloco try
 {
 if (divisor == 0)
 throw "Tentativa de divisÆo por zero"; // throw 1
 if (divisor < 0)
 throw 8888; // throw 2 
 quociente = dividendo / divisor;
 cout << "Quociente: " << quociente << endl;
 return 0;
 }
 catch (const char * msg) // Bloco catch 1
 {
 cout << msg << endl;
 }
 catch (int erro) // Bloco catch 2
 {
 cout << "Erro: " << erro << endl;
 }
 cout << "Fim" << endl;
 return 1;
}
exc03.cpp
#include <iostream>
#include <cmath> // Para a fun‡Æo sqrt()
using namespace std;
// Prot¢tipos das fun‡äes CalcRaiz() e Divisao()
double CalcRaiz(double) throw (const char *); 
float Divisao(float,float) throw (const char *);
int main()
{
 double numero,raizq;
 float divid,divis,quoc;
 cout << "N£mero para o c lculo da raiz quadrada: ";
 cin >> numero;
 try
 {
 raizq = CalcRaiz(numero);
 cout << "Raiz quadrada: " << raizq << endl;
 cout << endl << "Digite o dividendo: ";
 cin >> divid;
 cout << "Digite o divisor: ";
 cin >> divis;
 quoc = Divisao(divid,divis);
 cout << "Quociente: " << quoc << endl;
 cout << "T‚rmino sem erro" << endl;
 return 0;
 }
 catch (const char
* msg)
 {
 cout << msg << endl;
 }
 cout << "T‚rmino com erro" << endl;
 return 1;
}
double CalcRaiz(double numero1) throw (const char *)
{
 if (numero1 < 0)
 throw "Raiz quadrada de n£mero negativo";
 return sqrt(numero1);
}
float Divisao(float divid1,float divis1) throw (const char *)
{
 if (divis1 == 0)
 throw "Tentativa de divisÆo por zero";
 return divid1 / divis1;
}
exc04.cpp
#include <iostream>
#include <cmath> // Para a fun‡Æo sqrt()
using namespace std;
// Prot¢tipos das fun‡äes CalcRaiz() e Divisao()
double CalcRaiz(double) throw (const char *); 
float Divisao(float,float) throw (const char *);
int main()
{
 double numero,raizq;
 float divid,divis,quoc;
 try
 {
 cout << "N£mero para o c lculo da raiz quadrada: ";
 cin >> numero;
 raizq = CalcRaiz(numero);
 cout << "Raiz quadrada: " << raizq << endl << endl;
 }
 catch (const char * msg1)
 {
 cout << msg1 << endl;
 return 1;
 }
 try
 {
 cout << "Digite o dividendo: ";
 cin >> divid;
 cout << "Digite o divisor: ";
 cin >> divis;
 quoc = Divisao(divid,divis);
 cout << "Quociente: " << quoc << endl;
 return 0;
 }
 catch (const char * msg2)
 {
 cout << msg2 << endl;
 }
 return 1;
}
double CalcRaiz(double numero1) throw (const char *)
{
 if (numero1 < 0)
 throw "Raiz quadrada de n£mero negativo";
 return sqrt(numero1);
}
float Divisao(float divid1,float divis1) throw (const char *)
{
 if (divis1 == 0)
 throw "Tentativa de divisÆo por zero";
 return divid1 / divis1;
}
exc05.cpp
#include <iostream>
using namespace std;
int main()
{
 int dividendo,divisor,quociente;
 cout << "Digite o dividendo: ";
 cin >> dividendo;
 cout << "Digite o divisor: ";
 cin >> divisor;
 try
 {
 if (divisor == 0)
 throw 1;
 if (divisor < 0)
 throw 2;
 quociente = dividendo / divisor;
 cout << "Quociente: " << quociente << endl;
 return 0;
 }
 catch (...)
 {
 cout << "Ocorreu uma exce‡Æo " << endl;
 }
 return 1;
}
exc06.cpp
#include <iostream>
using namespace std;
class NumExtenso // Declara‡Æo da classe NumExtenso
 {
 public: // Prot¢tipos dos m‚todos
 void atrib();
 void ler();
 void exibe();
 ~NumExtenso(); // Prot¢tipo do destrutor
 class Erro // Declara‡Æo da classe de exce‡Æo Erro
 {
 };
 private:
 char * extensos[4];
 int numero;
 };
int main()
{
 NumExtenso extenso1; // Cria o objeto extenso1
 extenso1.atrib(); // Objeto extenso1 chama o m‚todo atrib()
 try // Bloco try
 {
 extenso1.ler(); // Objeto extenso1 chama o m‚todo ler()
 extenso1.exibe();// Objeto extenso1 chama o m‚todo exibe()
 cout << endl;
 }
 catch(NumExtenso::Erro) // Bloco catch
 {
 cout << "Erro. N£mero fora do intervalo" << endl;
 return 1;
 }
 return 0;
}
// Atribui valores ao objeto extenso1
void NumExtenso :: atrib()
{
 extensos[0] = "";
 extensos[1] = "Um";
 extensos[2] = "Dois";
 extensos[3] = "Trˆs";
}
// Lˆ um n£mero do teclado. Dispara uma exce‡Æo caso o n£mero 
// esteja fora do intervalo.
void NumExtenso :: ler()
{
 cout << "Digite um n£mero (de 1 a 3): ";
 cin >> numero;
 if (numero < 1 || numero > 3)
 throw Erro();
}
// Exibe o extenso do n£mero digitado.
void NumExtenso :: exibe()
{
 cout << extensos[numero];
}
NumExtenso :: ~NumExtenso() // Defini‡Æo do destrutor
{
}
exc07.cpp
#include <iostream>
using namespace std;
struct conta
 {
 double saldo[5000];
 };
int main(void)
{
 conta * ptr;
 try
 {
 cout << "new tenta alocar mem¢ria" << endl;
 ptr = new conta[10000];
 }
 catch (bad_alloc & mensag)
 {
 cout << "String do m‚todo what(): " << mensag.what() << endl;
 return 1;
 }
 delete [ ] ptr;
 return 0;
}
friend01.cpp
#include <iostream>
#include <string>
using namespace std;
class esposa; // Declara‡Æo antecipada
class marido // Declara‡Æo da classe marido
 {
 public:
 marido(char *,float); // Prot¢tipo do construtor
 ~marido(); // Prot¢tipo do destrutor
	 // Prot¢tipo da fun‡Æo friend exibe()
 friend void exibe(marido,esposa);
 private:
	char nome1[10];
	float salario1;
 };
class esposa // Declara‡Æo da classe esposa
 {
 public:
	 esposa(char *,float,float); // Prot¢tipo do construtor
 ~esposa(); // Prot¢tipo do destrutor
	 // Prot¢tipo da fun‡Æo friend exibe()
 friend void exibe(marido,esposa);
 private:
	char nome2[10];
	float salario2;
	float renda2;
 };
int main()
{
 // Cria o objeto homem, chamando o construtor
 marido homem("Fernando",3000.00);
 // Cria o objeto mulher, chamando o construtor
 esposa mulher("Suely",3000.00,0.00);
 exibe(homem,mulher); // Chama a fun‡Æo friend exibe()
 return 0;
}
// Defini‡Æo do construtor da classe marido
// marido :: marido(char * nome11,float salario11,float inss11)
 marido :: marido(char * nome11,float salario11)
{
 strcpy(nome1,nome11);
 salario1 = salario11;
}
// Defini‡Æo do destrutor da classe marido
marido :: ~marido()
{
}
// Defini‡Æo do construtor da classe esposa
esposa :: esposa(char * nome22,float salario22,float renda22)
{
 strcpy(nome2,nome22);
 salario2 = salario22;
 renda2 = renda22;
}
// Defini‡Æo do destrutor da classe esposa
esposa :: ~esposa()
{
}
// Defini‡Æo da fun‡Æo friend exibe()
void exibe(marido h1,esposa m1)
{
 cout << "Nome: " << h1.nome1 << endl;
 cout << "Sal rio: " << h1.salario1 << endl;
 cout << "Nome: " << m1.nome2 << endl;
 cout << "Sal rio: " << m1.salario2 << endl << endl;
 cout << "Renda mensal do casal " << h1.nome1 << " e "
 << m1.nome2 << ": R$ ";
 m1.renda2 = h1.salario1 + m1.salario2;
 cout << m1.renda2 << endl;
}
friend02.cpp
#include <iostream>
#include <cstring> // Para a fun‡Æo strcpy()
using namespace std;
class carro // Declara‡Æo da classe carro
 {
 public:
 carro(char *,int); // Prot¢tipo do construtor
 ~carro(); // Prot¢tipo do destrutor 
 void exibe(); // Prot¢tipo do m‚todo exibe()
 friend class fcarro; // Classe amiga da classe carro
 private:
	 char modelo[7];
	 int anofab;
 };
class fcarro // Declara‡Æo da classe amiga fcarro
 {
 public:
 void alt1(carro &); // Prot¢tipo do m‚todo alt1()
 void alt2(carro &); // Prot¢tipo do m‚todo alt2()
 };
int main()
{
 carro carro1("Corsa", 1999);
 fcarro fcarro1;
 cout << "Antes da altera‡Æo" << endl;
 carro1.exibe();
 // Passa o argumento ao m‚todo alt1(), por referˆncia,
 // pois esse altera as vari veis-membro da classe carro
 fcarro1.alt1(carro1);
 cout << "Depois da altera‡Æo" << endl;
 carro1.exibe();
 // Passa o argumento ao m‚todo alt2(), por referˆncia,
 // pois esse altera as vari veis-membro da classe carro
 fcarro1.alt2(carro1);
 carro1.exibe();
 return 0;
}
// M‚todos da classe carro
void carro :: exibe() // Defini‡Æo do m‚todo exibe()
{
 cout << "Modelo: " << modelo << endl;
 cout << "Ano: " << anofab << endl << endl;
}
// Defini‡Æo do construtor
carro:: carro (char * model1,int ano1)
{
 strcpy(modelo,model1);
 anofab = ano1;
}
carro :: ~carro() // Defini‡Æo do destrutor da classe carro
{
}
// M‚todos da classe amiga fcarro
// Defini‡Æo do m‚todo alt1()
void fcarro :: alt1(carro & c1)
{
 strcpy(c1.modelo,"Focus");
 c1.anofab = 2000;
}
// Defini‡Æo do m‚todo alt2()
void fcarro :: alt2(carro & c2)
{
 strcpy(c2.modelo,"Palio");
 c2.anofab = 2001;
}
friend03.cpp
#include <iostream>
#include <cstring> //
Para a fun‡Æo strcpy()
using namespace std;
class carro; // Declara‡Æo antecipada
class fcarro // Declara‡Æo da classe fcarro (amiga da classe carro)
 {
 public:
 void altera(carro &); // Prot¢tipo do m‚todo altera()
 void exibeval(carro); // Prot¢tipo do m‚todo exibeval()
 };
class carro // Declara‡Æo da classe carro
 {
 public:
 // Prot¢tipo do construtor
 carro(float,char *,int);
 ~carro(); // Prot¢tipo do destrutor
 void exibe(); // Prot¢tipo do m‚todo exibe()
 float valor;
 // Prot¢tipo do m‚todo friend altera()
 friend void fcarro::altera(carro &);
 private:
	 char modelo[7];
	 int anofab;
 };
int main()
{
 // Cria objeto da classe carro, chamando o construtor
 carro carro1(15000.,"Corsa", 1999);
 // Cria o objeto fcarro1 da classe fcarro
 fcarro fcarro1;
 cout << "Antes da altera‡Æo" << endl;
 carro1.exibe();
 // Passa o argumento ao m‚todo altera(), por referˆncia,
 // pois esse altera as vari veis-membro da classe carro
 fcarro1.altera(carro1);
 cout << "Depois da altera‡Æo" << endl;
 carro1.exibe();
 fcarro1.exibeval(carro1);
 return 0;
}
// M‚todos da classe carro
void carro :: exibe() // Defini‡Æo do m‚todo exibe()
{
 cout << "Modelo: " << modelo << endl;
 cout << "Ano: " << anofab << endl;
 cout << "Valor: " << valor << endl << endl;
}
// Defini‡Æo do construtor
carro:: carro (float valor1,char * model1,int ano1)
{
 valor = valor1;
 strcpy(modelo,model1);
 anofab = ano1;
}
carro :: ~carro() // Defini‡Æo do destrutor
{
}
// M‚todos da classe amiga fcarro
// Defini‡Æo do m‚todo altera()
void fcarro :: altera(carro & c1)
{
 strcpy(c1.modelo,"Focus");
 c1.anofab = 2000;
 c1.valor = 19000.;
}
// Defini‡Æo do m‚todo friend exibeval()
void fcarro :: exibeval(carro c2)
{
 cout << "Valor: " << c2.valor << endl;
}
friend04.cpp
#include <iostream>
#include <cstring> // Para a fun‡Æo strcpy()
using namespace std;
class carro // Declara‡Æo da classe carro
 {
 public:
 friend class fcarro; // A classe fcarro ‚ amiga da classe carro
 carro(char *,int); // Prot¢tipo do construtor
 ~carro(); // Prot¢tipo do destrutor
 // Prot¢tipo do m‚todo exibe_carro()
 void exibe_carro(); 
 // Prot¢tipo do m‚todo exibe_fcarro()
 void exibe_fcarro(const fcarro &);
 private:
	 char modelo[7];
	 int anofab;
 };
class fcarro // Declara‡Æo da classe fcarro
 {
 public:
 friend class carro; // A classe carro ‚ amiga da classe fcarro
 fcarro(float,char); // Prot¢tipo do construtor
 ~fcarro(); // Prot¢tipo do destrutor
 // Prot¢tipo do m‚todo altera_carro()
 void altera_carro(carro &); 
 private:
 float valor;
 char combust;
 };
int main()
{
 // Cria objeto da classe carro, chamando o construtor
 carro carro1("Corsa", 1999);
 // Cria objeto da classe fcarro, chamando o construtor
 fcarro fcarro1(15000.,'G');
 cout << "Antes da altera‡Æo - Classe carro" << endl;
 carro1.exibe_carro();
 cout << "Depois da altera‡Æo - Classe carro" << endl;
 // Passa o argumento ao m‚todo altera_carro(), por referˆncia,
 // pois esse altera as vari veis-membro da classe carro
 fcarro1.altera_carro(carro1);
 carro1.exibe_carro();
 cout << "Classe fcarro" << endl;
 // Passa o argumento ao m‚todo exibe_fcarro(), por referˆncia.
 // Como o argumento ‚ const, esse m‚todo nÆo altera as
 // vari veis-membro da classe fcarro
 carro1.exibe_fcarro(fcarro1);
 return 0;
}
// M‚todos da classe carro
// Defini‡Æo do m‚todo exibe_fcarro()
void carro :: exibe_fcarro(const fcarro & f1)
{
 cout << "Valor: " << f1.valor << endl;
 cout << "Combust¡vel: " << f1.combust << endl;
}
void carro :: exibe_carro() // Defini‡Æo do m‚todo exibe_carro()
{
 cout << "Modelo: " << modelo << endl;
 cout << "Ano: " << anofab << endl << endl;
}
// Defini‡Æo do construtor
carro:: carro (char * model1,int ano1)
{
 strcpy(modelo,model1);
 anofab = ano1;
}
carro :: ~carro() // Defini‡Æo do destrutor
{
}
// M‚todos da classe fcarro
// Defini‡Æo do m‚todo altera_carro()
void fcarro :: altera_carro(carro & c1)
{
 strcpy(c1.modelo,"Focus");
 c1.anofab = 2000;
}
// Defini‡Æo do construtor
fcarro:: fcarro (float valor1,char combust1)
{
 valor = valor1;
 combust = combust1;
}
fcarro :: ~fcarro() // Defini‡Æo do destrutor
{
}
hermul01.cpp
#include <iostream>
#include <cstring>
using namespace std;
// Declara‡o da classe-base funcionario
class func 
 {
 public:
 ~func(); // Prot¢tipo do destrutor
 void le_dados(); // Prot¢tipo do m‚todo le_dados()
 void exibe(); // Prot¢tipo do m‚todo exibe()
 private:
 char snome[10];
 };
// Declara‡Æo da classe-base escolaridade
class escol
 {
 public:
 ~escol(); // Prot¢tipo do destrutor
 void le_dados(); // Prot¢tipo do m‚todo le_dados()
 void exibe(); // Prot¢tipo do m‚todo exibe()
 private:
 char univ[8];
 };
// Declara‡Æo da classe derivada professor
class prof : public func, public escol
 {
 public:
 void le_dados(); // Prot¢tipo do m‚todo le_dados()
 void exibe(); // Prot¢tipo do m‚todo exibe()
 private:
 short int npub;
 };
// Declara‡Æo da classe derivada auxiliar
class auxil : public func
 {
 };
int main()
{
 // Cria o objeto prof1. Utiliza o construtor default
 prof prof1;
 // Cria o objeto auxil1. Utiliza o construtor default
 auxil auxil1;
 cout << "Digite os dados do professor" << endl;
 prof1.le_dados();
 cout << "Digite os dados do auxiliar" << endl;
 auxil1.le_dados();
 cout << endl;
 cout << "O professor ‚:" << endl;
 prof1.exibe();
 cout << "O auxiliar ‚:" << endl;
 auxil1.exibe();
 return 0;
}
// M‚todos da classe-base func
void func :: le_dados() // Defini‡Æo do m‚todo le_dados()
{ 
 cout << " Sobrenome: ";
 cin >> snome;
}
void func :: exibe() // Defini‡Æo do m‚todo exibe()
{ 
 cout << " Sobrenome: " << snome << endl;
// cout << " CPF: " << cpf << endl;
}
func :: ~func() // Defini‡Æo do destrutor 
{
}
// M‚todos da classe-base escolaridade
void escol :: le_dados() // Defini‡Æo do m‚todo le_dados()
{
 cout << " Universidade: ";
 cin >> univ;
}
void escol :: exibe() // Defini‡Æo do m‚todo exibe()
{
 cout << " Universidade: " << univ << endl;
// cout << " Grau: " << grau << endl;
}
escol:: ~escol() // Defini‡Æo do destrutor
{
}
// M‚todos da classe-derivada professor
void prof :: le_dados() // Defini‡Æo do m‚todo le_dados()
{
 func :: le_dados();
 escol :: le_dados();
 cout << " N§ de publica‡äes: ";
 cin >> npub;
}
void prof :: exibe() // Defini‡Æo do m‚todo exibe()
{
 func :: exibe();
 cout << " N§ de publica‡äes: " << npub << endl;
 escol :: exibe();
}
hermul02.cpp
#include <iostream>
using namespace std;
class ClaBase1 // Declara‡Æo de classe-base
 {
 public:
 void exibe();
 };
class ClaBase2 // Declara‡Æo de classe-base
 {
 public:
 void exibe();
 };
// Declara‡Æo de classe derivada
class ClaDeriv : public ClaBase1, public ClaBase2
 {
 };
int main()
{
 ClaDeriv objderiv; // Cria objeto da classe derivada
 // Chamada qualificada ao m‚todo exibe() da classe-base ClaBase1
 objderiv.ClaBase1 :: exibe();
 // Chamada qualificada ao m‚todo exibe() da classe-base ClaBase2
 objderiv.ClaBase2 :: exibe();
 // objderiv.exibe();
 return 0;
}
// M‚todos da classe-base ClaBase1
void ClaBase1 :: exibe()
{
 cout << "Classe-base 1" << endl;
}
// M‚todos da classe-base ClaBase2
void ClaBase2 :: exibe()
{
 cout
<< "Classe-base 2" << endl;
}
herniv01.cpp
#include <iostream>
#include <cstring>
using namespace std;
class pessoa // Declara‡Æo da classe-base pessoa
 {
 public:
 ~pessoa(); // Prot¢tipo do destrutor
 void le_dados(); // Prot¢tipo do m‚todo le_dados()
 void exibe(); // Prot¢tipo do m‚todo exibe()
 private:
 char snome[10];
 };
// Declara‡Æo da classe derivada homem
class homem : public pessoa
 {
 public:
 void le_dados(); // Prot¢tipo do m‚todo le_dados()
 void exibe(); // Prot¢tipo do m‚todo exibe()
 private:
 short int idade;
 };
// Declara‡Æo da classe derivada rapaz
class rapaz : public homem
 {
 public:
 void le_dados(); // Prot¢tipo do m‚todo le_dados()
 void exibe(); // Prot¢tipo do m‚todo exibe()
 private:
 char est_civil[11];
 };
int main()
{
 // Cria o objeto homem1. Utiliza o construtor default
 homem homem1;
 // Cria o objeto rapaz1. Utiliza o construtor default
 rapaz rapaz1;
 cout << "Digite os dados do homem" << endl;
 homem1.le_dados();
 cout << "Digite os dados do rapaz" << endl;
 rapaz1.le_dados();
 cout << endl;
 cout << "O homem ‚:" << endl;
 homem1.exibe();
 cout << "O rapaz ‚:" << endl;
 rapaz1.exibe();
 return 0;
}
// M‚todos da classe-base pessoa
void pessoa :: le_dados() // Defini‡Æo do m‚todo le_dados()
{ 
 cout << " Sobrenome: ";
 cin >> snome;
}
void pessoa :: exibe() // Defini‡Æo do m‚todo exibe()
{ 
 cout << " Sobrenome: " << snome << endl;
}
pessoa :: ~pessoa() // Defini‡Æo do destrutor 
{
}
// M‚todos da classe-derivada homem
void homem :: le_dados() // Defini‡Æo do m‚todo le_dados()
{
 pessoa :: le_dados();
 cout << " Idade: ";
 cin >> idade;
}
void homem :: exibe() // Defini‡Æo do m‚todo exibe()
{
 pessoa :: exibe();
 cout << " Idade: " << idade << endl;
}
// M‚todos da classe-derivada rapaz
void rapaz :: le_dados() // Defini‡Æo do m‚todo le_dados()
{
 homem :: le_dados();
 cout << " Estado civil: ";
 cin >> est_civil;
}
void rapaz :: exibe() // Defini‡Æo do m‚todo exibe()
{
 homem :: exibe();
 cout << " Estado civil: " << est_civil << endl;
}
hersim01.cpp
#include <iostream>
#include <cstring> // Para a fun‡Æo strcpy()
using namespace std;
class carro // Declara‡Æo da classe-base carro
 {
 public:
 carro(char *); // Prot¢tipo do construtor
 char modelo[7];
 };
// Declara‡Æo da classe derivada novo_carro
class novo_carro : public carro
 {
 public:
	// Prot¢tipo do construtor
 novo_carro(char *,int,float);
 // Prot¢tipo do m‚todo exibe_tudo()
 void exibe_tudo();
 private:
	 int anofab;
	 float valor;
 };
int main()
{
 // Cria o objeto ncarro1, chamando os construtores
 novo_carro ncarro1("Focus",2002,35000.);
 // M‚todo da classe derivada exibe vari veis p£blicas da classe-base
 ncarro1.exibe_tudo();
 return 0;
}
// M‚todos da classe-base carro
// Defini‡Æo do construtor
carro:: carro (char * modelo1)
{
 strcpy(modelo,modelo1);
}
// M‚todos da classe derivada novo_carro
// Defini‡Æo do m‚todo exibe_tudo()
void novo_carro :: exibe_tudo()
{
 cout << "Modelo: " << modelo << endl;
 cout << "Ano: " << anofab << endl;
 cout << "Valor: " << valor << endl;
}
// Defini‡Æo do construtor. Chama o construtor da classe-base
novo_carro :: novo_carro(char * modelo1,int ano1,
 float valor1) : carro(modelo1)
{
 anofab = ano1;
 valor = valor1;
}
hersim02.cpp
#include <iostream>
#include <cstring> // Para a fun‡Æo strcpy()
using namespace std;
class carro // Declara‡Æo da classe-base carro
 {
 public:
 carro(char *); // Prot¢tipo do construtor
 void exibe(); // Prot¢tipo do m‚todo exibe()
 private:
	 char modelo[7];
 };
// Declara‡Æo da classe derivada novo_carro
class novo_carro : public carro
 {
 public:
	// Prot¢tipo do construtor
 novo_carro(char *,int,float);
 // Prot¢tipo do m‚todo exibe_novo()
 void exibe_novo();
 private:
	 int anofab;
	 float valor;
 };
int main()
{
 // Cria o objeto carro1, chamando o construtor
 carro carro1("Corsa");
 // Cria o objeto ncarro1, chamando os construtores
 novo_carro ncarro1("Focus",2002,35000.);
 // Objeto da classe-base chama m‚todo da classe-base
 carro1.exibe();
 cout << endl;
 // Objeto da classe derivada chama m‚todo da classe derivada
 ncarro1.exibe_novo();
 cout << endl;
 // Objeto da classe derivada chama m‚todo da classe-base
 ncarro1.exibe();
 return 0;
}
// M‚todos da classe-base carro
// Defini‡Æo do m‚todo exibe()
void carro :: exibe()
{
 cout << "Modelo: " << modelo << endl;
}
// Defini‡Æo do construtor
carro:: carro (char * modelo1)
{
 strcpy(modelo,modelo1);
}
// M‚todos da classe derivada novo_carro
// Defini‡Æo do m‚todo exibe_novo()
void novo_carro :: exibe_novo()
{
 exibe(); // Chama o m‚todo exibe() da classe-base
 cout << "Ano: " << anofab << endl;
 cout << "Valor: " << valor << endl;
}
// Defini‡Æo do construtor. Chama o construtor da classe-base
novo_carro :: novo_carro(char * modelo1,int ano1,
 float valor1) : carro(modelo1)
{
 anofab = ano1;
 valor = valor1;
}
hersim03.cpp
#include <iostream>
using namespace std;
// Declara‡Æo da classe-base pessoa
class pessoa 
 {
 public:
 ~pessoa(); // Prot¢tipo do destrutor
 void le_dados(); // Prot¢tipo do m‚todo le_dados()
 void exibe(); // Prot¢tipo do m‚todo exibe()
 private:
 char snome[10];
 };
// Declara‡Æo da classe derivada homem
class homem : public pessoa
 {
 public:
 void le_dados(); // Prot¢tipo do m‚todo le_dados()
 void exibe(); // Prot¢tipo do m‚todo exibe()
 private:
 short int idade;
 };
// Declara‡Æo da classe derivada mulher
class mulher : public pessoa
 {
 public:
 void le_dados(); // Prot¢tipo do m‚todo le_dados()
 void exibe(); // Prot¢tipo do m‚todo exibe()
 private:
 char est_civil[11];
 };
int main()
{
 // Cria o objeto homem1. Utiliza o construtor default
 homem homem1;
 // Cria o objeto mulher1. Utiliza o construtor default
 mulher mulher1;
 cout << "Digite os dados do homem" << endl;
 homem1.le_dados();
 cout << "Digite os dados da mulher" << endl;
 mulher1.le_dados();
 cout << endl;
 cout << "O homem ‚:" << endl;
 homem1.exibe();
 cout << "A mulher ‚:" << endl;
 mulher1.exibe();
 return 0;
}
// M‚todos da classe-base pessoa
void pessoa :: le_dados() // Defini‡Æo do m‚todo le_dados()
{ 
 cout << " Sobrenome: ";
 cin >> snome;
}
void pessoa :: exibe() // Defini‡Æo do m‚todo exibe()
{ 
 cout << " Sobrenome: " << snome << endl;
}
pessoa :: ~pessoa() // Defini‡Æo do destrutor
{
}
// M‚todos da classe-derivada homem
void homem :: le_dados() // Defini‡Æo do m‚todo le_dados()
{
 pessoa :: le_dados();
 cout << " Idade: ";
 cin >> idade;
}
void homem :: exibe() // Defini‡Æo do m‚todo exibe()
{
 pessoa :: exibe();
 cout << " Idade: " << idade << endl;
}
// M‚todos da classe-derivada mulher
void mulher :: le_dados() // Defini‡Æo do m‚todo le_dados()
{
 pessoa :: le_dados();
 cout << " Estado civil: ";
 cin >> est_civil;
}
void mulher :: exibe() // Defini‡Æo do m‚todo exibe()
{
 pessoa :: exibe();
 cout << " Estado civil: " << est_civil << endl;
}
int01.cpp
#include <iostream>
using namespace std;
int main()
{
 int ValDec = 15,ValHex = 0xF,ValOct = 017;
 cout << "Decimal: " << ValDec << endl;
 cout << "Hexa convertido: " << ValHex
<< endl;
 cout << "Octal convertido: " << ValOct << endl;
 return 0;
}
metcon01.cpp
#include <iostream>
#include <cstring> // Para a fun‡Æo strcpy()
using namespace std;
class carro // Declara‡Æo da classe carro
 {
 public:
	 char modelo[7];
 int anofab;
 void exibe() const; // Prot¢tipo do m‚todo const exibe()
 };
int main()
{
 carro carro1; // Cria o objeto carro1
 strcpy(carro1.modelo,"Gol");
 carro1.anofab = 1999;
 cout << "Objeto carro1" << endl;
 carro1.exibe(); // Objeto carro1 chama o m‚todo exibe()
 return 0;
}
// Exibe os valores do objeto carro1
void carro :: exibe() const
{
 cout << "Modelo: " << modelo << endl;
// anofab = 8888;
 cout << "Ano: " << anofab << endl;
}
metvir01.cpp
#include <iostream>
using namespace std;
// Declara‡Æo da classe-base formas geom‚tricas
class FormasGeo
 {
 public:
 void desenha(); // Prot¢tipo do m‚todo desenha()
 };
// Declara‡Æo da classe derivada quadrado
class quadrado : public FormasGeo
 {
 public:
 void desenha(); // Prot¢tipo do m‚todo desenha()
 };
// Declara‡Æo da classe derivada retang
class retang : public FormasGeo
 {
 public:
 void desenha(); // Prot¢tipo do m‚todo desenha()
 };
int main()
{
 quadrado quadrado1; // Cria o objeto quadrado1
 retang retang1; // Cria o objeto retang1
 FormasGeo *ptr; // Ponteiro para a classe-base
 ptr = &quadrado1; // Atribui o endere‡o do objeto quadrado1 … ptr 
 ptr -> desenha(); // Chama o m‚todo desenha()
 ptr = &retang1; // Atribui o endere‡o do objeto retang1 … ptr
 ptr -> desenha(); // Chama o m‚todo desenha()
 return 0;
}
// M‚todos da classe-base FormasGeo
// Defini‡Æo do m‚todo desenha()
void FormasGeo :: desenha()
{ 
 cout << "Classe-base FormasGeo" << endl;
}
// M‚todos da classe derivada quadrado
// Defini‡Æo do m‚todo desenha()
void quadrado :: desenha()
{
 cout << "Classe derivada quadrado" << endl;
}
// M‚todos da classe-derivada retang
// Defini‡Æo do m‚todo desenha()
void retang :: desenha()
{
 cout << "Classe derivada retang" << endl;
}
metvir02.cpp
#include <iostream>
using namespace std;
void Limpa();
void menu();
// Declara‡Æo da classe-base formas geom‚tricas
class FormasGeo
 {
 public:
 virtual ~FormasGeo(); // Prot¢tipo do destrutor virtual
 virtual void desenha(); // Prot¢tipo do m‚todo virtual desenha()
 };
// Declara‡Æo da classe derivada quadrado
class quadrado : public FormasGeo
 {
 public:
 void desenha(); // Prot¢tipo do m‚todo desenha()
 };
// Declara‡Æo da classe derivada retang
class retang : public FormasGeo
 {
 public:
 void desenha(); // Prot¢tipo do m‚todo desenha()
 };
int main()
{
 quadrado quadrado1; // Cria o objeto quadrado1
 retang retang1; // Cria o objeto retang1
 FormasGeo *ptr; // Ponteiro para a classe-base
 char opcao,tecla;
 menu();
 cin >> opcao;
 while (opcao != '3')
 {
 switch(opcao)
 {
 case '1':
 Limpa();
 // Atribui o endere‡o do objeto quadrado1 … ptr
 ptr = &quadrado1;
 // Chama o m‚todo desenha() da classe derivada quadrado
 ptr -> desenha();
 cin >> tecla;
 break;
 case '2':
 Limpa();
 // Atribui o endere‡o do objeto retang1 … ptr
 ptr = &retang1;
 // Chama o m‚todo desenha() da classe derivada retang
 ptr -> desenha();
 cin >> tecla;
 break;
 case '3':
 break;
 }
 menu();
 cin >> opcao;
 }
 Limpa();
 cout << endl;
 return 0;
}
// M‚todos da classe-base FormasGeo
void FormasGeo :: desenha() // Defini‡Æo do m‚todo desenha()
{ 
}
// Defini‡Æo do destrutor virtual
FormasGeo :: ~FormasGeo() 
{
}
// M‚todos da classe-derivada quadrado
void quadrado :: desenha() // Defini‡Æo do m‚todo desenha()
{
 cout << "Classe derivada quadrado" << endl << endl;
 int i,k;
 for (i = 1;i < 3;i++)
 {
 cout.width(7);
 for (k = 1;k < 4;k++)
 cout << "x";
 cout << endl;
 }
 cout << endl;
 cout << "Pressione uma tecla e Enter ";
}
// M‚todos da classe-derivada retang
void retang :: desenha() // Defini‡Æo do m‚todo desenha()
{
 cout << "Classe derivada retang" << endl << endl;
 int i,k;
 for (i = 1; i < 3; i++)
 {
 cout.width(7);
 for (k = 1;k < 18;k++)
 cout << "x"; 
 cout << endl;
 }
 cout << endl;
 cout << "Pressione uma tecla e Enter ";
}
void menu() // Defini‡Æo da fun‡Æo menu()
{
 Limpa();
 cout.width(40);
 cout << "DESENHO DE FORMAS GEOM�TRICAS" << endl << endl;
 cout.width(35);
 cout << "1 - Quadrado " << endl << endl;
 cout.width(35);
 cout << "2 - Retƒngulo " << endl << endl;
 cout.width(35);
 cout << "3 - Sair " << endl << endl;
 cout.width(35);
 cout << "Digite uma op‡Æo: ";
}
void Limpa() // Defini‡Æo da fun‡Æo Limpa()
{
 cout << "\033[2J";
 cout << "\033[0;0f";
}
metvir03.cpp
#include <iostream>
using namespace std;
// Declara‡Æo da classe-base formas geom‚tricas
class FormasGeo
 {
 public:
 virtual ~FormasGeo(); // Prot¢tipo do destrutor virtual
 virtual void desenha(); // Prot¢tipo do m‚todo virtual desenha()
 };
int main()
{
 FormasGeo forma1; // Cria o objeto forma1 da classe-base
 forma1.desenha();
 return 0;
}
// Defini‡Æo do m‚todo desenha()
void FormasGeo :: desenha()
{
 cout << "M‚todo desenha()" << endl;
}
FormasGeo :: ~FormasGeo() // Defini‡Æo do destrutor virtual
{
}
objstr01.cpp
#include <iostream>
#include <string>
using namespace std;
int main()
{
 char stringc[9] = "String-C";
 string s1("Objeto String"),s2,s3;
 s2 = stringc;
 s3 = s1;
 cout << s2 << endl << s3 << endl;
 string s4(stringc);
 string s5(s1);
 cout << s4 << endl << s5 << endl;
 return 0;
}
objstr02.cpp
#include <iostream>
#include <string>
using namespace std;
int main()
{
 string s1("Micro");
 s1 += "Computador";
 cout << s1 << endl;
 string s2("Poli"),s3("Morfismo");
 s2 += s3;
 cout << s2 << endl;
 s2 += "?";
 cout << s2 << endl;
 return 0;
}
objstr03.cpp
#include <iostream>
#include <string>
using namespace std;
int main()
{
 string s1(10,'$');
 cout << s1 << endl;
 return 0;
}
objstr04.cpp
#include <iostream>
#include <string>
using namespace std;
int main()
{
 int i;
 string s1("MicroComputador");
 for (i = 0;i < 5;i++)
 cout << s1[i] << " ";
 cout << endl;
 return 0;
}
objstr05.cpp
#include <iostream>
#include <string>
using namespace std;
int main()
{
 char stringc[9] = "String-C";
 string s1(stringc,6);
 cout << s1 << endl;
 return 0;
}
objstr06.cpp
#include <iostream>
#include <string>
using namespace std;
int main()
{
 char str[11] = "ABCDEFGHIJ";
 string s2(str,str+5);
 cout << s2 << endl;
 string s3(str+5,str+10);
 cout << s3 << endl;
 return 0;
}
objstr07.cpp
#include <iostream>
#include <string>
using namespace std;
int main()
{
 string s1("Classes-Objetos");
 string s2(s1,0,8);
 cout << s2 << endl;
 string s3(s1,8,7);
 cout << s3 << endl;
 return 0;
}
objstr08.cpp
#include <iostream>
#include <string>
using namespace std;
int main()
{
 string s1("abc"),s2("ABC");
 char str[4] = "abc";
 if (s1 != s2) // objeto string X objeto string
 cout << "s1 diferente de s2" << endl;
 if (s1 == str) // objeto string X string-C
 cout << "s1 igual … str" << endl;
if (str == s1) // string-C X objeto string
 cout << "str igual … s1" << endl;
 return 0;
}
objstr09.cpp
#include <iostream>
#include <string>
using namespace std;
int main()
{
 int i,comp;
 string s1("MicroComputador");
 comp = s1.size(); // Ou comp = s1.length();
 for (i = 0;i < comp;i++)
 cout << s1[i] << " ";
 cout << endl;
 return 0;
}
objstr10.cpp
#include <iostream>
#include <string>
using namespace std;
int main()
{
 string s1("Objeto String"),s2,s3;
 s2.assign(s1);
 cout << s2 << endl;
 s3.assign(s1,0,6);
 cout << s3 << endl;
 char strc[9] = "String-C"; 
 string s4,s5,s6;
 s4.assign(strc);
 cout << s4 << endl;
 s5.assign(strc,6);
 cout << s5 << endl;
 s6.assign(4,'W');
 cout << s6 << endl;
 return 0;
}
objstr11.cpp
#include <iostream>
#include <string>
using namespace std;
int main()
{
 string s1("Objeto "),s2("da Classe String");
 s1.append(s2);
 cout << s1 << endl;
 string s3("Teste ");
 s3.append(s2,0,16);
 cout << s3 << endl;
 char strc[9] = "String-C"; 
 string s4("Sou um objeto, nÆo um ");
 s4.append(strc);
 cout << s4 << endl;
 string s5("Objeto ");
 s5.append(strc,6);
 cout << s5 << endl;
 string s6("Cuidado");
 s6.append(3,'!'); 
 cout << s6 << endl;
 return 0;
}
objstr12.cpp
#include <iostream>
#include <string>
using namespace std;
int main()
{
 string s1("MicroComputador");
 char strc[16];
 int qtde;
 qtde = s1.copy(strc,10,5);
 strc[qtde] = '\0'; // Acrescenta o caractere nulo
 cout << strc << endl;
 return 0;
}
objstr13.cpp
#include <iostream>
#include <string>
using namespace std;
int main()
{
 int retorno;
 string s1("abcd"),s2("abcd");
 retorno = s1.compare(s2);
 if (retorno == 0)
 cout << "Objetos iguais" << endl;
 string s3("CasaVerde"),s4("Casa");
 retorno = s3.compare(0,4,s4);
 if (retorno == 0)
 cout << "Parte de s3 ‚ igual a s4" << endl;
 string s5("A face oculta"),s6("A interface visual");
 retorno = s5.compare(2,4,s6,7,4);
 if (retorno == 0)
 cout << "Parte de s5 ‚ igual … parte de s6" << endl;
 return 0;
}
objstr14.cpp
#include <iostream>
#include <string>
using namespace std;
int main()
{
 int posic;
 char strc[10] = "com v¡rus";
 string s1("Computador com v¡rus"),s2("dor");
 posic = s1.find(s2);
 cout << "s2 na posi‡Æo " << posic << " de s1" << endl;
 posic = s1.find(strc,2);
 cout << "strc na posi‡Æo " << posic << " de s1" << endl;
 return 0;
}
objstr15.cpp
#include <iostream>
#include <string>
using namespace std;
int main()
{
 int posic;
 string s1("classe-string-objeto-string"),s2("string");
 posic = s1.rfind(s2);
 cout << "s2 na posi‡Æo " << posic << " de s1" << endl;
 posic = s1.rfind("ring",20);
 cout << "'ring' na posi‡Æo " << posic << " de s1" << endl;
 return 0;
}
objstr16.cpp
#include <iostream>
#include <string>
using namespace std;
int main()
{
 int posic;
 string s1("Computadores"),s2("dr");
 posic = s1.find_first_of(s2,0);
 cout << "'d' na posi‡Æo " << posic << " de s1" << endl;
 posic = s1.find_first_of("rua",0);
 cout << "'u' na posi‡Æo " << posic << " de s1" << endl;
 return 0;
}
objstr17.cpp
#include <iostream>
#include <string>
using namespace std;
int main()
{
 int posic;
 string s1("Computadores"),s2("dr");
 posic = s1.find_last_of(s2);
 cout << "'r' na posi‡Æo " << posic << " de s1" << endl;
 posic = s1.find_last_of("oto");
 cout << "'o' na posi‡Æo " << posic << " de s1" << endl;
 return 0;
}
objstr18.cpp
#include <iostream>
#include <string>
using namespace std;
int main()
{
 int posic;
 string s1("Computadores"),s2("dor");
 posic = s1.find_first_not_of(s2);
 cout << "'C' ‚ o primeiro caractere nÆo encontrado em s2. Posi‡Æo "
 << posic << endl;
 posic = s1.find_first_not_of("Compu");
 cout << "'t' ‚ o primeiro caractere nÆo encontrado em s1. Posi‡Æo "
 << posic << endl;
 return 0;
}
objstr19.cpp
#include <iostream>
#include <string>
using namespace std;
int main()
{
 int posic;
 string s1("Computadores"),s2("dor");
 posic = s1.find_last_not_of(s2);
 cout << "'s' ‚ o £ltimo caractere nÆo encontrado em s2. Posi‡Æo "
 << posic << endl;
 posic = s1.find_last_not_of("res");
 cout << "'o' ‚ o £ltimo caractere nÆo encontrado em s1. Posi‡Æo "
 << posic << endl;
 return 0;
}
objstr20.cpp
#include <iostream>
#include <string>
using namespace std;
int main()
{
 string alerta("Computador com v¡rus!");
 string subs(alerta.substr(11,10));
 cout << subs << endl;
 return 0;
}
objstr21.cpp
#include <iostream>
#include <string>
using namespace std;
int main()
{
 string s1("Comput"),s2("ador");
 s1.insert(6,s2);
 cout << s1 << endl;
 string s3("Diste"),s4("123quete456");
 s3.insert(3,s4,3,3);
 cout << s3 << endl;
 string s5("Diste");
 s5.insert(3,"que");
 cout << s5 << endl;
 return 0;
}
objstr22.cpp
#include <iostream>
#include <string>
using namespace std;
int main()
{
 string s1("Computador");
 s1.replace(4,3,"ila");
 cout << s1 << endl;
 string s2("Computador"),s3("123456");
 s2.replace(4,3,s3,0,3);
 cout << s2 << endl;
 string s4("Banana");
 s4.replace(2,4,"tata");
 cout << s4 << endl;
 return 0;
}
objstr23.cpp
#include <iostream>
#include <string>
using namespace std;
int main()
{
 string s1("Software");
 cout << "Antes de erase()" << endl;
 cout << "Comprimento: " << s1.size() << " Conte£do: "
 << s1 << endl;
 s1.erase(1,2);
 cout << "Depois de erase()" << endl;
 cout << "Comprimento: " << s1.size() << " Conte£do: "
 << s1 << endl << endl;
 string s2("Software");
 cout << "Antes de clear()" << endl;
 cout << "Comprimento: " << s2.size() << " Conte£do: "
 << s2 << endl;
 s2.clear();
 cout << "Depois de clear()" << endl;
 cout << "Comprimento: " << s2.size() << " Conte£do: "
 << s2 << endl;
 if (s2.empty() == true)
 cout << "Objeto s2 vazio" << endl;
 return 0;
}
objstr24.cpp
#include <iostream>
#include <string>
using namespace std;
int main()
{
 string s1("CPU"),s2("ROM-BIOS");
 cout << "Antes do swap()" << endl;
 cout << "s1: " << s1;
 cout << " s2: " << s2 << endl << endl;
 cout << "Depois do swap()" << endl;
 s1.swap(s2);
 cout << "s1: " << s1;
 cout << " s2: " << s2 << endl;
 return 0;
}
objstr25.cpp
#include <iostream>
#include <string>
using namespace std;
int main()
{
 string s1("ChipSet 456");
 cout << "s1 antes de resize(): " << s1 << endl;
 s1.resize(4);
 cout << "s1 depois de resize(): " << s1 << endl;
 return 0;
}
objstr26.cpp
#include <iostream>
#include <string>
using namespace std;
int main()
{
 // Leitura com getline()
 string nome1;
 cout << "Digite seu nome completo: ";
 getline(cin,nome1);
 cout << nome1 << endl;
 // Leitura com getline() delimitada
 string nome2;
 char delimit = '$';
 cout << "Digite seu nome completo, terminando com '$': ";
 getline(cin,nome2,delimit); // Ou getline(cin,nome3,'$');
 cout << nome2 << endl;
 // Leitura com cin >>
 string nome3;
 cout << "Digite seu nome completo: ";
 cin >> nome3;
 cout << nome3 << endl;
 return 0;
}
print01.cpp
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
 char linha[20];
 ifstream entrada("teste2"); // Abre o arquivo a ser impresso
 ofstream printer("PRN"); // Abre o arquivo-impressora
 entrada.getline(linha,20);
 while (entrada.eof() == false)
 {
 printer << linha << endl;
 entrada.getline(linha,20);
 }
 printer << "\f"; // Ejeta a p gina
 printer.close();
 entrada.close();
 return 0;
} 
sobope01.cpp
#include <iostream>
#include <cstring>
using namespace std;
class texto // Declara‡Æo da classe texto
 {
 public:
	texto(char *); // Prot¢tipo do construtor
 ~texto(); // Prot¢tipo do destrutor
 void exibe(int);
// Prot¢tipo do m‚todo exibe()
 void operator -(int); // Prot¢tipo da fun‡Æo operator
 private:
 // Constante simb¢lica com escopo de classe
 static const int comp = 25;
 char string1[comp];
 };
int main()
{
 // Cria o objeto texto1, chamando o construtor
 texto texto1("Sobrecarga de operadores");
 texto1.exibe(1); // Objeto texto1 chama o m‚todo exibe()
 texto1 - 5; // Chama a fun‡Æo operator
 texto1.exibe(2); // Objeto texto1 chama o m‚todo exibe()
 return 0;
}
void texto :: exibe(int flag) // Defini‡Æo do m‚todo exibe()
{
 if (flag == 1)
 cout << "String original: " << string1 << endl;
 else
 cout << "Substring: " << string1 << endl;
}
void texto :: operator -(int qtd) // Defini‡Æo da fun‡Æo operator
{
 int k = 0;
 char str_aux[comp];
 while (k < qtd)
 {
	str_aux[k] = string1[k];
	k++;
 }
 str_aux[k] = '\0';
 strcpy(string1,str_aux);
}
texto :: texto (char * string11) // Defini‡Æo do construtor
{
 strcpy(string1,string11);
}
texto :: ~texto() // Defini‡Æo do destrutor
{
}
sobope02.cpp
#include <iostream>
#include <cstring>
using namespace std;
class texto // Declara‡Æo da classe texto
 {
 public:
 texto(char *); // Prot¢tipo do construtor
 ~texto(); // Prot¢tipo do destrutor
 void exibe(int); // Prot¢tipo do m‚todo exibe()
	char * operator -(int); // Prot¢tipo da fun‡Æo operator
 private:
 // Constante simb¢lica com escopo de classe
 static const int comp = 25;
 char string1[comp];
 };
int main()
{
 // Cria o objeto texto1, chamando o construtor
 texto texto1("Sobrecarga de operadores");
 texto1.exibe(1); // Objeto texto1 chama o m‚todo exibe()
 texto1 = texto1 - 5; // Chama a fun‡Æo operator
 texto1.exibe(2); // Objeto texto1 chama o m‚todo exibe()
 return 0;
}
void texto :: exibe(int flag) // Defini‡Æo do m‚todo exibe()
{
 if (flag == 1)
 cout << "String original: " << string1 << endl;
 else
 cout << "Substring: " << string1 << endl;
}
char * texto :: operator -(int qtd) // Defini‡Æo da fun‡Æo operator
{
 int k = 0;
 char str_aux[comp];
 while (k < qtd)
 {
	str_aux[k] = string1[k];
	k++;
 }
 str_aux[k] = '\0';
 strcpy(string1,str_aux);
 return string1;
}
texto :: texto (char * string11) // Defini‡Æo do construtor
{
 strcpy(string1,string11);
}
texto :: ~texto() // Defini‡Æo do destrutor
{
}
sobope03.cpp
#include <iostream>
#include <cstring>
using namespace std;
class texto // Declara‡Æo da classe texto
 {
 public:
 texto(char *); // Prot¢tipo do construtor
 texto(); // Prot¢tipo do construtor default
 ~texto(); // Prot¢tipo do destrutor
 void exibe(int); // Prot¢tipo do m‚todo exibe()
 texto operator +(const texto &); // Prot¢tipo da fun‡Æo operator
 private:
 // Constante simb¢lica com escopo de classe
 static const int comp = 35;
 char string1[comp];
 };
int main()
{
 // Cria o objeto texto1, chamando o construtor
 texto texto1("Sobrecarga de Operadores");
 // Cria o objeto texto2, chamando o construtor
 texto texto2(" de C++");
 // Cria o objeto texto3 sem inicializ -lo, por causa do construtor default
 texto texto3;
 texto1.exibe(1); // Objeto texto1 chama o m‚todo exibe()
 texto2.exibe(2); // Objeto texto2 chama o m‚todo exibe()
 texto3 = texto1 + texto2; // Chama a fun‡Æo operator
 texto3.exibe(3); // Objeto texto3 chama o m‚todo exibe()
 return 0;
}
void texto :: exibe(int flag) // Defini‡Æo do m‚todo exibe()
{
 if (flag == 1)
 cout << "String original 1: " << string1 << endl;
 else
 if (flag == 2)
 cout << "String original 2: " << string1 << endl;
 else
 cout << "String resultante: " << string1 << endl;
}
// Defini‡Æo da fun‡Æo operator
texto texto :: operator +(const texto & texto22)
{
 texto texto_result;
 strcpy(texto_result.string1,string1);
 strcat(texto_result.string1,texto22.string1);
 return texto_result;
}
texto :: texto (char * string11) // Defini‡Æo do construtor
{
 strcpy(string1,string11);
}
texto :: texto() // Defini‡Æo do construtor default
{
}
texto :: ~texto() // Defini‡Æo do destrutor
{
}
static01.cpp
#include <iostream>
#include <cstring>
using namespace std;
class carro // Declara‡Æo da classe carro
 {
 public:
	carro(char *,char *); // Prot¢tipo do construtor
 ~carro(); // Prot¢tipo do destrutor
 void exibe(); // Prot¢tipo do m‚todo exibe()
 void atrib(int); // Prot¢tipo do m‚todo atrib()
 private:
	 char marca[12];
	 char modelo[7];
	 static int anofab; // Vari vel-membro static
 };
// Incializa a vari vel-membro static anofab
int carro :: anofab = 0;
int main()
{
 // Cria objetos chamando o construtor. Esses objetos compartilham
 // o valor da vari vel-membro anofab
 carro carro1("GM", "Corsa");
 carro carro2("Ford", "Focus");
 carro1.atrib(2001);
 carro1.exibe();
 carro2.exibe();
 return 0;
}
void carro :: exibe() // Defini‡Æo do m‚todo exibe()
{
 cout << "Marca: " << marca << endl;
 cout << "Modelo: " << modelo << endl;
 cout << "Ano: " << anofab << endl << endl;
}
void carro :: atrib(int ano1) // Defini‡Æo do m‚todo atrib()
{
 anofab = ano1;
}
// Defini‡Æo do construtor
carro:: carro (char * marc1,char * model1)
{
 strcpy(marca,marc1);
 strcpy(modelo,model1);
}
carro :: ~carro() // Defini‡Æo do destrutor
{
}
static02.cpp
#include <iostream>
using namespace std;
class carro // Declara‡Æo da classe carro
 {
 public:
	static int anofab; // Vari vel-membro static
 private:
	 char marca[12];
	 char modelo[7];
 };
// Defini‡Æo de vari vel-membro static sem inicializa‡Æo
int carro :: anofab;
int main()
{
 carro :: anofab = 2002;
 cout << "Ano: " << carro :: anofab << endl;
 return 0;
}
static03.cpp
#include <iostream>
using namespace std;
class carro // Declara‡Æo da classe carro
 {
 public:
 // Prot¢tipo do membro static exibe()
 static void exibe();
 private:
	char marca[12];
	char modelo[7];
	static int anofab; // Vari vel-membro static
 };
// Incializa a vari vel-membro static anofab
int carro :: anofab = 2000;
int main()
{
 // Chama o m‚todo static exibe() sem a existˆncia de objetos.
 // Acessa a vari vel compartilhada anofab
 carro :: exibe();
 return 0;
}
void carro :: exibe() // Defini‡Æo do membro static exibe()
{
cout << "Ano: " << anofab << endl;
}
stlvec01.cpp
#include <iostream>
#include <vector> // Para o container vector
using namespace std;
int main()
{
 unsigned int k;
 vector<int> pares; // Vetor com elementos do tipo int
 pares.push_back(10);
 pares.push_back(2);
 pares.push_back(8);
 pares.push_back(6);
 pares.push_back(12);
 pares[4] = 14;
 for (k = 0;k < pares.size();k++)
 {
 cout << pares[k] << " ";
 }
 cout << endl;
 return 0;
}
stlvec02.cpp
#include <iostream>
#include <algorithm> // Para o algoritmo sort()
#include <vector> // Para o container vector
using namespace std;
int main()
{
 unsigned int k;
 vector<int> pares; // Vetor com elementos do tipo int
 pares.push_back(10);
 pares.push_back(2);
 pares.push_back(8);
 pares.push_back(6);
 pares.push_back(12);
 sort(pares.begin(),pares.end());
 for (k = 0;k < pares.size();k++)
 {
 cout << pares[k] << " ";
 }
 cout << endl;
 return 0;
}
string01.cpp
#include <iostream>
using namespace std;
int main()
{
 char texto [5] = "Byte";
 int i = 0;
 while (texto[i] != '\0')
 {
 cout << texto[i] << endl;
 i++;
 }
 return 0;
}
string02.cpp
#include <iostream>
#include <cstring>
// Para a fun‡Æo strlen()
using namespace std;
int main()
{
 char nome[11];
 int qtd;
 cout << "Digite seu nome: ";
 cin >> nome;
 qtd = strlen(nome);
 cout << "Seu nome tem " << qtd << " caracteres" << endl;
 return 0;
}
struct01.cpp
#include <iostream>
using namespace std;
int main()
{
 struct st_produto	// Gabarto de estrutura
 {
	char pd_nome[15];
	float pd_valor;
 };
 st_produto produto1 = {"Caneta",1.5};
 cout << "Nome: " << produto1.pd_nome << endl;
 cout << "Valor: " << produto1.pd_valor << endl;
 return 0;
}
struct02.cpp
#include <iostream>
#include <cstring> // Para a fun‡Æo strcpy()
using namespace std;
int main()
{
 struct st_produto // Gabarito de estrutura
 {
	char pd_nome[15];
	float pd_valor;
 };
 st_produto produto1; // Vari vel-estrutura produto1
 strcpy(produto1.pd_nome,"Caneta");
 produto1.pd_valor = 1.5;
 cout << "Nome: " << produto1.pd_nome << endl;
 cout << "Valor: " << produto1.pd_valor << endl;
 return 0;
}
struct03.cpp
#include <iostream>
using namespace std;
int main()
{
 struct st_produto // Gabarito de estrutura
	{
	 char pd_nome[15];
	 float pd_valor;
	};
 st_produto produto1={"Caderno",2.5};
 st_produto produto2;
 produto2 = produto1;
 cout << "Vari vel-estrutura produto2" << endl;
 cout << "Nome: " << produto2.pd_nome << endl;
 cout << "Valor: " << produto2.pd_valor << endl;
 return 0;
}
struct04.cpp
#include <iostream>
#include <cstring> // Para a fun‡Æo strcpy()
using namespace std;
int main()
{
 struct st_produto // Gabarito de estrutura
	{
	 char pd_nome[15];
	 float pd_valor;
	};
 st_produto produtos[2];
 strcpy(produtos[0].pd_nome,"Caneta");
 produtos[0].pd_valor = 1.5;
 strcpy(produtos[1].pd_nome,"Caderno");
 produtos[1].pd_valor = 2.5;
 cout << "Nome: " << produtos[0].pd_nome << endl;
 cout << "Valor: " << produtos[0].pd_valor << endl << endl;
 cout << "Nome: " << produtos[1].pd_nome << endl;
 cout << "Valor: " << produtos[1].pd_valor << endl;
 return 0;
}
struct05.cpp
#include <iostream>
#include <cstring> // Para a fun‡Æo strcpy()
using namespace std;
struct st_produto // Gabarito da estrutura externo
 {
	char pd_nome[15];
	float pd_valor;
 };
// Prot¢tipo da fun‡Æo altera() com um ponteiro para o tipo st_produto
void altera(st_produto *);
int main()
{
 st_produto produto1={"Caneta",1.5};
 // Chama a fun‡Æo altera() passando o endere‡o da estrutura
 altera(&produto1);
 cout << "Estrutura depois da chamada" << endl;
 cout << "Nome: " << produto1.pd_nome << endl;
 cout << "Valor: " << produto1.pd_valor << endl;
 return 0;
}
void altera(st_produto * prod) // Defini‡Æo da fun‡Æo altera()
{
 strcpy(prod->pd_nome,"Lapiseira");
 prod->pd_valor = 3.5;
}
struct06.cpp
#include <iostream>
using namespace std;
void reajuste(float &); // Prot¢tipo da fun‡Æo reajuste()
int main()
{
 struct st_produto // Gabarito da estrutura
 {
	char pd_nome[15];
	float pd_valor;
 };
 st_produto produto1={"Caneta",1.5};
 // O endere‡o do argumento real (membro pd_valor) ‚
 // passado para o argumento formal valor
 reajuste(produto1.pd_valor);
 return 0;
}
void reajuste(float &valor) 
{
 valor = valor * 1.3;
 cout << "Novo valor " << valor << endl;
}
struct07.cpp
#include <iostream>
using namespace std;
struct st_produto // Gabarito de estrutura externo
 {
	int pd_cod;
	char pd_nome[15];
	float pd_valor;
 };
st_produto ret_struc(); // Prot¢tipo da fun‡Æo ret_struc()
int main()
{
 st_produto produto1; // Vari vel-estrutura produto1
 produto1 = ret_struc(); // Chamada … fun‡Æo ret_struc()
 cout << "Estrutura retornada - fun‡Æo main()" << endl;
 cout << "C¢digo: " << produto1.pd_cod << endl;
 cout << "Nome: " << produto1.pd_nome << endl;
 cout << "Valor: " << produto1.pd_valor << endl;
 return 0;
}
// Defini‡Æo da fun‡Æo ret_struc. Armazena os valores digitados na
// vari vel-estrutura produto2, que ‚ retornada na vari vel-estrutura
// produto1.
st_produto ret_struc()
{
 st_produto produto2; // Vari vel-estrutura produto2
 cout << "C¢digo do produto: ";
 cin >> produto2.pd_cod;
 cout << "Nome do produto: ";
 cin >> produto2.pd_nome;
 cout << "Valor do produto: ";
 cin >> produto2.pd_valor;
 return produto2;
}
struct08.cpp
#include <iostream>
using namespace std;
int main()
{
 struct computador
 {
 char cpu[20];
 mutable int ram;
 };
 const computador micro = {"Pentium 4",128};
 micro.ram = 256;
 cout << micro.cpu << " - ";
 cout << micro.ram << " MB" << endl;
 return 0;
}
struct09.cpp
#include <iostream>
using namespace std;
int main()
{
 struct st_produto // Gabarito de estrutura
 {
	char pd_nome[15];
	float pd_valor;
 };
 st_produto * ptr = new st_produto;
 cout << "Nome do produto: ";
 cin >> ptr->pd_nome;
 cout << "Valor do produto: ";
 cin >> ptr->pd_valor;
 cout << endl << "Valores digitados: ";
 cout << ptr->pd_nome << " ";
 cout << (*ptr).pd_valor << endl;
 delete ptr;
 return 0;
}
argcon01.cpp
#include <iostream>
#include <cstring> // Para a fun‡Æo strcpy() 
using namespace std;
class carro // Declara‡Æo da classe carro
 {
 public:
	 char modelo[7];
 int anofab;
 void exibe(const int *); // Prot¢tipo do m‚todo exibe()
 };
int main()
{
 carro carro1; // Cria o objeto carro1
 strcpy(carro1.modelo,"Gol");
 carro1.anofab = 1999;
 cout << "Objeto carro1" << endl;
 // Chama o m‚todo exibe() passando como argumento o endere‡o
 // da vari vel-membro anofab
 carro1.exibe(&carro1.anofab);
 return 0;
}
// Exibe os valores do objeto carro1
void carro :: exibe(const int *anofab1)
{
 cout << "Modelo: " << modelo << endl;
 cout << "Ano: " << anofab << endl;
 // *anofab1 = 2002;
}
temcla02.cpp
#include <iostream>
using namespace std;
// Declara‡Æo da classe-template. Ou template <class Tipo1>
template <typename Tipo1>
class xnumeros
 {
 public:
 xnumeros(); // Prot¢tipo do construtor
 ~xnumeros(); // Prot¢tipo do destrutor
 void atrib(); // Prot¢tipo do m‚todo atrib()
 void exibe(); // Prot¢tipo do m‚todo exibe()
 Tipo1 soma(); // Prot¢tipo do m‚todo soma()
 private:
	Tipo1 matriz[9];
 };
int main ()
{
 xnumeros <int> NInt; // Cria o objeto NInt
 xnumeros <float> NFloat; // Cria o objeto NFloat
 // Objeto chama os m‚todos atrib(), exibe() e soma()
 NInt.atrib();
 NInt.exibe();
 cout << "Somat¢rio (int): " << NInt.soma() << endl;
 // Objeto chama os m‚todos atrib(), exibe() e soma()
 NFloat.atrib();
 NFloat.exibe();
 cout << "Somat¢rio (float): " << NFloat.soma() << endl;
 return 0;
}
// Defini‡Æo do m‚todo atrib(). Atribui valores aos arrays
template<class Tipo1>
void xnumeros<Tipo1> :: atrib()
{
 int i;
 for (i = 0;i < 9;i++)
 matriz[i] = i + 0.5;
}
// Defini‡Æo do m‚todo exibe(). Exibe os valores do array
template<typename Tipo1>
void xnumeros<Tipo1> :: exibe()
{
 int i;
 cout << "Valores: ";
 for (i = 0; i < 9; i++)
 cout << matriz[i] << " ";
 cout << endl;
}
// Defini‡Æo do m‚todo soma(). Soma os valore do array
template<typename Tipo1>
Tipo1 xnumeros<Tipo1> :: soma()
{
 Tipo1 somat = 0;
 int i;
 for (i = 0; i < 9; i++)
 somat = somat + matriz[i];
 return somat;
}
template<typename Tipo1> // Defini‡Æo do construtor
xnumeros<Tipo1> :: xnumeros()
{
}
template<typename Tipo1> // Defini‡Æo do destrutor
xnumeros<Tipo1> :: ~xnumeros()
{
}
temfun01.cpp
#include <iostream>
using namespace std;
// Prot¢tipo da fun‡Æo-template
template <typename TGen> // Ou template <class TGen>
TGen MenorVal(TGen a, TGen b);
int main()
{
int x1 = 10,x2 = 20,resint;
 char z1 = 'B',z2 = 'Z',reschar;
 // Chama a fun‡Æo-template com argumentos do tipo int
 resint = MenorVal(x1,x2);
 cout << "Menor valor (int): " << resint << endl;
 // Chama a fun‡Æo-template com argumentos do tipo char
 reschar = MenorVal(z1,z2);
 cout << "Menor valor (char): " << reschar << endl;
 return 0;
}
// Defini‡Æo da fun‡Æo-template
template <typename TGen>
TGen MenorVal(TGen n1, TGen n2)
{
 return (n1 < n2) ? n1 : n2;
}
temfun02.cpp
#include <iostream>
using namespace std;
// Prot¢tipo da fun‡Æo-template original
template <typename TGen> // Ou template <class TGen>
TGen MenorVal(TGen a, TGen b);
// Prot¢tipo da nova fun‡Æo-template
template <typename TGen> // Ou template <class TGen>
TGen MenorVal(TGen [ ],int qtdelem);
int main()
{
 float y1 = 10.5,y2 = 30.5,resfloat;
 const int Kelem = 4; 
 int numeros[Kelem] = {2,4,1,3},result;
 // Chama a fun‡Æo-template original com argumentos float
 resfloat = MenorVal(y1,y2);
 cout << "Menor valor (float): " << resfloat << endl;
 // Chama a nova fun‡Æo-template com argumento que ‚ um array de inteiros
 result = MenorVal(numeros,Kelem);
 cout << "Menor valor (array): " << result << endl;
 return 0;
}
// Defini‡Æo da fun‡Æo-template original
template <typename TGen>
TGen MenorVal(TGen a, TGen b)
{
 return (a < b) ? a : b;
}
// Defini‡Æo da nova fun‡Æo-template
template <typename TGen>
TGen MenorVal(TGen xnumeros[ ],int qtdelem1)
{
 TGen menor;
 int k;
 menor = xnumeros[1];
 for (k = 0;k < qtdelem1;k++)
 {
 if (xnumeros[k] < menor)
 menor = xnumeros[k];
 }
 return menor;
}
this01.cpp
#include <iostream>
using namespace std;
class classe1
 {
 public:
 classe1(int); // Prot¢tipo do construtor
 void exibe(); // Prot¢tipo do m‚todo exibe()
 private:
	 int valor;
 };
int main()
{
 // Cria o objeto objeto1, chamando o construtor
 classe1 objeto1(50);
 objeto1.exibe();
 return 0;
}
void classe1 :: exibe() // Defini‡Æo do m‚todo exibe()
{
 cout << "Valor (sem o ponteiro this): " << valor << endl;
 cout << "Valor (com o ponteiro this): " << this -> valor << endl;
 cout << "Valor (com o ponteiro this de-referenciado): "
 << (*this).valor << endl;
}
classe1 :: classe1(int valor1) // Defini‡Æo do construtor
{
 valor = valor1;
}
cin11.cpp
#include <iostream>
using namespace std;
int main()
{
 char texto[30];
 cout << "Digite um texto terminado por '@': " << endl;
 cin.get(texto,30,'@'); // Ou cin.getline(texto,30,'@');
 cout << "O texto " << texto << " tem " << strlen(texto)
 << " caracteres" << endl;
 return 0;
}
cin03.cpp
#include <iostream>
using namespace std;
int main()
{
 int idade = 0;
 cout << "Digite sua idade: ";
 cin >> idade;
 cout << "Vocˆ tem " << idade << " anos" << endl;
 return 0;
}
cin04.cpp
#include <iostream>
using namespace std;
int main()
{
 int idade = 0;
 cout << "Digite sua idade: ";
 if (cin >> idade == 0)
 cout << "Erro de leitura. Dados inv lidos." << endl;
 else
 cout << "Vocˆ tem " << idade << " anos" << endl;
 return 0;
}
cin05.cpp
#include <iostream>
using namespace std;
int main()
{
 int numero;
 int somat = 0;
 cout << "Digite alguns n£meros: " << endl;
 while (cin >> numero != 0) // Ou while (cin >> numero)
 somat = somat + numero;
 cout << "éltimo n£mero digitado: " << numero << endl;
 cout << "Somat¢rio: " << somat << endl;
 return 0;
}
cin06.cpp
#include <iostream>
using namespace std;
int main()
{
 int idade = 0;
 cout << "Digite sua idade: ";
 cin >> idade;
 if (cin.fail()) 
 cout << "Erro de leitura. Dados inv lidos." << endl;
 else
 cout << "Vocˆ tem " << idade << " anos" << endl;
 return 0;
}
cin07.cpp
#include <iostream>
using namespace std;
int main()
{
 int numero;
 int somat = 0;
 cout << "Digite alguns n£meros: " << endl;
 while (cin >> numero)
 somat = somat + numero;
 cout << "éltimo n£mero digitado: " << numero << endl;
 cout << "Somat¢rio: " << somat << endl;
 if (cin.fail())
 cout << "Programa terminado. Dados inv lidos." << endl;
 return 0;
}
cin08.cpp
#include <iostream>
using namespace std;
int main()
{
 int cont = 0;
 char ch;
 cout << "Digite uma frase e pressione Enter:" << endl;
 cin.get(ch); // Ou ch = cin.get();
 while (ch != '\n')
 {
 cont++;
 cout << ch;
 cin.get(ch); // Ou ch = cin.get();
 }
 cout << endl;
 cout << "Caracteres digitados: " << cont << endl;
 return 0; 
}
cin09.cpp
#include <iostream>
using namespace std;
int main()
{
 int cont = 0;
 char ch;
 cout << "Digite uma frase e pressione Enter:" << endl;
 cin >> ch;
 while (ch != '\n')
 {
 cont++;
 cout << ch;
 cin >> ch;
 }
 cout << endl;
 cout << "Caracteres digitados: " << cont << endl;
 return 0; 
}
cin10.cpp
#include <iostream>
using namespace std;
int main()
{
 int cont = 0;
 char ch;
 cout << "Digite uma frase e pressione Enter:" << endl;
 cin.get(ch); // Ou ch = cin.get();
 while (cin.eof() == false) // Ou while(ch != EOF)
 {
 cont++;
 cout << ch;
 cin.get(ch); // Ou ch = cin.get(); 
 }
 cout << endl;
 cout << "Caracteres digitados: " << cont << endl;
 return 0; 
}
cin12.cpp
#include <iostream>
using namespace std;
int main()
{
 char texto[20],ch;
 cout << "Digite um texto terminado por '@': " << endl;
 cin.get(texto,20,'@');
 cout << "O texto " << texto << " tem " << strlen(texto)
 << " caracteres" << endl;
 cout << "Caracteres no buffer: ";
 while ((ch = cin.get()) != '\n')
 cout << ch;
 cout << endl;
 return 0;
}
cin13.cpp
#include <iostream>
using namespace std;
int main()
{
 char texto[20],ch;
 cout << "Digite um texto terminado por '@': " << endl;
 cin.getline(texto,20,'@');
 cout << "O texto " << texto << " tem " << strlen(texto)
 << " caracteres" << endl;
 cout << "Caracteres no buffer: ";
 while ((ch = cin.get()) != '\n')
 cout << ch;
 cout << endl;
 return 0;
}
cin14.cpp
#include <iostream>
using namespace std;
int main()
{
 const int Klimite = 21;
 char texto[Klimite];
 int qtde;
 cout << "Digite um texto, at‚ 20 caracteres: " << endl;
 // cin.getline(texto,Klimite);
 cin.get(texto,Klimite);
 qtde = cin.gcount();
 cout << "Vocˆ digitou " << qtde << " caracteres" << endl;
 return 0;
}
cin15.cpp
#include <iostream>
using namespace std;
int main()
{
 char nome[20];
 cout << "Digite seu nome: ";
 cin.width(12);
 cin >> nome;
 cout << "Ol  " << nome << endl;
 return 0;
}
pf01.cpp
#include <iostream>
using namespace std;
void exibe(); // Prot¢tipo da fun‡Æo exibe()
int somar(int,int); // Prot¢tipo da fun‡Æo somar()
int main()
{
 int result;
 // Declara um ponteiro para uma fun‡Æo que nÆo retorna
 // valor nem recebe argumentos
 void (*p1) (); 
 p1 = exibe; // Atribui o endere‡o de exibe() … p1
 (*p1) (); // Chama a fun‡Æo exibe()
 // Declara um ponteiro para uma fun‡Æo que retorna um valor
 // int e que recebe 2 argumentos
 int (*p2) (int,int);
 p2 = somar; // Atribui o endere‡o de somar() … p2
 result = (*p2) (10,20); // Chama a fun‡Æo somar()
 cout << "Adi‡Æo: " << result << endl;
 return 0;
}
void exibe()
{
 cout << "Fun‡Æo Exibe" << endl;
}
int somar(int n1,int n2)
{
 return n1 + n2;
}
cout08.cpp
#include <iostream>
using namespace std;
int main()
{
 char nome[14] = "Linguagem C++";
 cout.write("Classe",5) << endl;
 cout.write(nome,1).write(nome,3) << endl;
 cout.write(nome,13) << endl;
 return 0;
}
cout02.cpp
#include <iostream>
using namespace std;
int main()
{
 int k = 5;
 float saldo = 3.34567;
 while (k > 0)
 {
 cout.precision(k);
cout << saldo << endl;
 k -= 1;
 }
 return 0;
}
cout03.cpp
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
 // setw define 10 caracteres de comprimento, como o valor ocupa
 // 6 posi‡äes, h  o preenchimento com 4 *
 float compra = 200.55;
 cout.fill('*');
 cout << "Compra: " << setw(10) << compra << endl;
 return 0;
}
cout04.cpp
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
 cout << "123456789" << endl;
 cout << setw(3) << "abc" << endl;
 cout << setw(4) << 123 << endl;
 cout << setw(5) << 123 << endl;
 return 0;
}
cout05.cpp
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
 int k = 5;
 float saldo = 3.34567;
 while (k > 0)
 {
 cout << setprecision(k) << saldo << endl;
 k -= 1;
 }
 return 0;
}
cout06.cpp
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
 // setw define 10 caracteres de comprimento, como o valor
 // ocupa 6 posi‡äes, h  o preenchimento com 4 *
 float compra = 200.55;
 cout << setfill('*');
 cout << "Compra: " << setw(10) << compra << endl;
 return 0;
}
cout07.cpp
#include <iostream>
using namespace std;
int main()
{
 char letra = 'A';
 cout.put(letra) << endl;
 cout.put('Z') << endl;
 cout.put('C').put('+').put('+') << endl;
 return 0;
}
cout01.cpp
#include <iostream>
using namespace std;
int main()
{
 cout << "123456789" << endl;
 cout.width(3);
 cout << "abc" << endl;
 cout.width(4);
 cout << 123 << endl;
 cout.width(5);
 cout << 123 << endl;
 return 0;
}
cout09.cpp
#include <iostream>
using namespace std;
int main()
{
 int valor1 = 10;
 cout << hex << "Valores hexadecimais" << endl;
 cout << "Sem showbase: " << valor1 << endl;
 cout.setf(ios_base :: showbase);
 cout << "Com showbase: " << valor1 << endl;
 return 0;
}
cout10.cpp
#include <iostream>
using namespace std;
int main()
{
 int a = 1, b = 2;
 cout << "Sem boolalpha: ";
 cout << (a > b) << endl;
 cout.setf(ios_base::boolalpha);
 cout << "Com boolalpha: ";
 cout << (a > b) << endl;
 return 0;
}
cout11.cpp
#include <iostream>
using namespace std;
int main()
{
 int valor1 = 10;
 cout.setf(ios_base::hex,ios_base::basefield);
 cout << "HEXADECIMAL: " << valor1 << endl;
 cout.setf(ios_base::oct,ios_base::basefield);
 cout << "OCTAL: " << valor1 << endl;
 cout.setf(ios_base::dec,ios_base::basefield);
 cout << "DECIMAL: " << valor1 << endl;
 return 0;
}
cout12.cpp
#include <iostream>
using namespace std;
int main()
{
 float valor1 = 100.;
 cout << "Com fixed: ";
 cout.setf(ios_base::fixed,ios_base::floatfield);
 cout << valor1 << endl;
 cout << "Com scientific: ";
 cout.setf(ios_base::scientific,ios_base::floatfield);
 cout << valor1 << endl;
 return 0;
}
cout13.cpp
#include <iostream>
using namespace std;
int main()
{
 int valor = 10;
 cout << hex; // Passa a exibir valores em hexadecimal
 // Ou cout.setf(ios_base::hex,ios_base::basefield);
 cout << valor << endl;
 // Retorna ao sistema num‚rico default (decimal)
 cout.unsetf(ios_base::hex);
 cout << valor << endl;
 return 0;
}
cout14.cpp
#include <iostream>
using namespace std;
int main()
{
 int valor1 = 10,valor2 = 15;
 cout << hex << "HEXADECIMAL: " << uppercase;
 cout.width(2);
 cout << right << valor1 << " " << valor2 << endl;
 cout << oct << "OCTAL: ";
 cout.width(8);
 cout << right << valor1 << " " << valor2 << endl;
 cout << dec << "DECIMAL: ";
 cout.width(6);
 cout << right << valor1 << " " << valor2 << endl;
 return 0;
}
pointr06.cpp
#include <iostream>
using namespace std;
void exibe(int *); // Prot¢tipo fun‡Æo exibe()
int main()
{
 int *ptr = new int[3];
 ptr[0] = 10,ptr[1] = 20,ptr[2] = 30;
 cout << "Fun‡Æo main(): ";
 cout << ptr[0] << " ";
 cout << ptr[1] << " ";
 cout << ptr[2] << endl;
 exibe(&ptr[0]); // Ou exibe(ptr)
 delete [ ] ptr; // Libera o bloco alocado
 cout << endl;
 return 0;
}
void exibe(int *ender) // Defini‡Æo da fun‡Æo exibe()
{
 cout << "Fun‡Æo exibe(): ";
 cout << ender[0] << " ";
 cout << ender[1] << " ";
 cout << ender[2] << endl;
}
pointr02.cpp
#include <iostream>
using namespace std;
int main()
{
 int x = 3;
 int * ptr; // Pointer para um int
 ptr = &x; // Atribui o endere‡o de x … ptr
 cout << "x tem o valor " << *ptr << endl;
 *ptr = *ptr + 100;
 cout << "Agora, x tem o valor " << *ptr << endl;
 return 0;
}
pointr03.cpp
#include <iostream>
using namespace std;
int main()
{
 int * ptr = new int;
 if (ptr == 0)
 {
 cout << "Falta de mem¢ria" << endl;
 return 1;
 }
 else
 {
 // Atribui o valor 32 ao endere‡o contido em ptr
 *ptr = 32;
 cout << "O conte£do do endere‡o " << ptr << " ‚ "
 << *ptr << endl;
 cout << "O bloco de mem¢ria alocado tem " << sizeof(*ptr)
 << " bytes" << endl;
 delete ptr;
 return 0;
 }
}
pointr04.cpp
#include <iostream>
using namespace std;
int main()
{
 int * ptr = new int[4];
 ptr[0] = 1;
 ptr[1] = 2;
 ptr[2] = 3;
 ptr[3] = 4;
 cout << ptr[0] << " ";
 cout << ptr[1] << " ";
 cout << ptr[2] << " ";
 cout << ptr[3] << " " << endl;
 delete [ ] ptr; // Libera o bloco de mem¢ria alocado
 return 0;
}
pointr05.cpp
#include <iostream>
using namespace std;
int main()
{
 int pares[4] = {10, 20, 30, 40},k;
 for (k = 0;k < 4;k++)
 {
 cout << "O endere‡o do elemento " << k << " ‚: " << &pares[k];
 cout << " (valor " << pares[k] << ")" << endl;
 }
 return 0;
}
pointr01.cpp
#include <iostream>
using namespace std;
int main()
{
 int x = 3;
 int * ptr; // Ponteiro para um int
 ptr = &x; // Atribui o endere‡o da vari vel x … ptr
 cout << "A vari vel x cont‚m o valor " << x;
 cout << " e est  no endere‡o " << ptr << endl;
 return 0;
}
pointr07.cpp
#include <iostream>
using namespace std;
int *ptr; // Ponteiro global
void exibe(); // Prot¢tipo da fun‡Æo exibe()
int main()
{
 ptr = new int[3]; 
 ptr[0] = 10,ptr[1] = 20,ptr[2] = 30;
 cout << "Fun‡Æo main(): ";
 cout << ptr[0] << " ";
 cout << ptr[1] << " ";
 cout << ptr[2] << endl;
 exibe(); // Chama a fun‡Æo exibe() sem argumentos
 delete [] ptr; // Libera o bloco alocado
 return 0;
}
void exibe() // Defini‡Æo da fun‡Æo exibe()
{
 cout << "Fun‡Æo exibe(): ";
 cout << ptr[0] << " ";
 cout << ptr[1] << " ";
 cout << ptr[2] << endl;
}
pointr08.cpp
#include <iostream>
using namespace std;
int main()
{
 int k;
 int * ptr = new int[3];
 for (k = 0;k < 3;k++) // Atribui valores ao array dinƒmico
 ptr[k] = k;
 // Exibe os valores do array dinƒmico via de-referˆncia
 cout << *ptr << " ";
 ptr++; // Adiciona 4 ao endere‡o contido em ptr 
 cout << *ptr << " ";
 ptr++; // Adiciona 4 ao endere‡o contido em ptr 
 cout << *ptr << " ";
 ptr++; // Adiciona 4 ao endere‡o contido em ptr 
 delete [] ptr; // Libera o bloco alocado
 cout << endl;
 return 0;
}
string07.cpp
#include <iostream>
using namespace std;
int main()
{
 // Aloca um bloco de mem¢ria de 10 elementos
 char * ptr = new char[10];
 char letra = '@';
 int k;
 for (k = 0;k < 9;k++) // Atribui valores de A at‚ I
 {
 letra++;
 ptr[k] = letra;
 }
 ptr[k] = '\0'; // Finaliza o string
 k = 0;
 while(ptr[k] != '\0') // Exibe valores
 {
 cout << ptr[k] << " ";
 k++;
 }
 delete [ ] ptr; // Libera o bloco alocado
 cout << endl;
 return 0;
}
string04.cpp
#include <iostream>
using namespace std;
int main()
{
 char nome[15],esporte[10];
 cout << "Digite seu nome completo: ";
 cin.get(nome,15);
 cin.get(); // Lˆ
o caractere de nova-linha
 cout << "Digite seu esporte favorito: ";
 cin.get(esporte,10); // Ou cin.getline(esporte,10);
 cout << "Seu esporte favorito ‚ " << esporte << ", " << nome << endl;
 return 0;
}
string05.cpp
#include <iostream>
using namespace std;
int main()
{
 char texto[5] = "byte";
 int k = 0;
 while (texto[k] != '\0')
 {
 cout << texto[k] << endl;
	k++;
 }
 return 0;
}
string06.cpp
#include <iostream>
using namespace std;
int main()
{
 char texto[5] = "byte";
 int k = 0;
 char * ptr = texto;
 while (ptr[k] != '\0')
 {
	cout << ptr[k] << endl;
	k++;
 }
 return 0;
}
string03.cpp
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
 char nome[11];
 int qtd;
 cout << "Digite seu nome completo: ";
 cin.get(nome,11); // Ou cin.getline(nome,11);
 qtd = strlen(nome); 
 cout << "Seu nome tem " << qtd << " caracteres" << endl;
 return 0;
}
string08.cpp
#include <iostream>
using namespace std;
int main()
{
 const int Klimite = 20;
 char * ptr = new char[Klimite];
 cout << "Digite seu nome e sobrenome: ";
 cin.get(ptr,Klimite);
 cout << "Vocˆ se chama " << ptr << endl;
 delete [ ] ptr;
 return 0;
}
string09.cpp
#include <iostream>
using namespace std;
void exibe(char *); // Prot¢tipo da fun‡Æo exibe()
int main()
{
 char texto[9] = "string1";
 // Ponteiro para um char que aponta para um string
 char * ptr = "string2";
 exibe(texto);
 exibe(ptr);
 exibe("string3");
 return 0;
}
void exibe(char * ptr1) // Defini‡Æo da fun‡Æo exibe()
{
 static int n;
 n++;
 cout << "Chamada " << n << ": ";
 while (*ptr1 != '\0')
 {
	cout << *ptr1;
	ptr1++;
 }
 cout << endl;
}
string10.cpp
#include <iostream>
using namespace std;
char * exibe(char); // Prot¢tipo da fun‡Æo exibe()
int main()
{
 char * ptr; // Ponteiro para um char
 char caract;
 cout << "Digite o caractere a ser repetido: ";
 cin >> caract;
 ptr = exibe(caract); // Chama a fun‡Æo exibe()
 cout << ptr << endl;
 delete [ ] ptr; // Libera o bloco de mem¢ria alocado
 return 0;
}
char * exibe(char caract1) // Defini‡Æo da fun‡Æo exibe()
{
 int k;
 char * ptr1 = new char[11]; // Aloca‡Æo
 for (k = 0;k < 10;k++)
 ptr1[k] = caract1;
 ptr1[k] = '\0'; // Finaliza o string
 return ptr1;
}
string11.cpp
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
 char * semana[8] = { " ", "Domingo", "Segunda-feira",
 "Ter‡a-feira", "Quarta-feira",
 "Quinta-feira", "Sexta-feira",
 "S bado"
 };
 int dia;
 cout << "Digite um n£mero de 1 a 7: ";
 cin >> dia;
 cout << semana[dia] << endl;
 return 0;
}
prep04.cpp
#include <iostream>
#define NUMERO1 5
#define MULT2(n1,n2) (n1 * n2)
using namespace std;
int main()
{
 int produto;
 #undef NUMERO1
 #if NUMERO1
 produto = MULT2(NUMERO1,2);
 cout << produto << endl; // 10
 #else
 produto = MULT2(0,0); 
 cout << produto << endl; // 0
 #endif
 return 0;
}
prep01.cpp
#include <iostream>
#define SOMAR(v1,v2)(v1+v2)
using namespace std;
int main()
{
 int val1 = 10, val2 = 20, total;
 total = 2 * SOMAR(val1,val2);
 cout << "Total: " << total << endl;
 return 0;
}
prep02.cpp
#include <iostream>
#line 50
using namespace std;
int main()
{
 cout << "Linha "<< __LINE__;
 return 0;
}
prep03.cpp
#include <iostream>
#define NUMERO1 5
#define SOMAR(n1,n2) (n1 + n2)
using namespace std;
int main()
{
 int total;
 total = SOMAR(NUMERO1,3);
 cout << total << endl; // 8
 #undef NUMERO1
 // total = SOMAR(NUMERO1,3); // Erro, NUMERO1 foi removido
 #define NUMERO1 9 // NUMERO1 passa a ter o valor 9
 total = SOMAR(NUMERO1,4);
 cout << total; // 13
 return 0;
}
assert01.cpp
#include <iostream>
#include <cassert>
using namespace std;
int main()
{
 int mes = 13;
 assert(mes <= 12);
 cout << "1";
 return 0;
}
prep05.cpp
#include <iostream>
using namespace std;
int main()
{
 cout << "Data: " << __DATE__ << endl;
 cout << "Arquivo: " << __FILE__ << endl;
 cout << "Linha: " << __LINE__ << endl;
 cout << "Hora: " << __TIME__ << endl;
 cout << "PadrÆo: " << __STDC__ << endl;
 cout << "C++: " << __cplusplus << endl;
 cout << "djgpp: " << __DJGPP << endl;
 cout << "Fun‡Æo: " << __func__ << endl;
// cout << " " << __TIMESTAMP__ << endl;
 #ifndef __cplusplus
 #error Preciso do compilador C++
 #endif
 if (__STDC__)
 cout << "PadrÆo ANSI" << endl;
 return 0;
}
prep06.cpp
#include <iostream>
using namespace std;
int main()
{
 #infdef __cplusplus
 #error Preciso do compilador C++
 #endif
 return 0;
}
prep07.cpp
#include <iostream>
using namespace std;
#define formata(x) cout << "Bom dia, " #x << endl;
int main()
{
 formata(Joel);
 cout << "Bom dia, " "Joel" << endl;
 return 0;
}
prep08.cpp
#include <iostream>
using namespace std;
#define concat(a,b) a##b
int main()
{
 int xy = 99;
 cout << concat(x,y); // Transforma em cout << xy;
 return 0;
}
pvoid02.cpp
#include <iostream>
using namespace std;
int main()
{
 int valor = 11;
 void * ptvoid; // Ponteiro void
 float * pf; // Ponteiro para um float
 ptvoid = &valor; // Armazena em ptvoid o endere‡o de um int
 cout << "Endere‡o de valor: "<< ptvoid << endl;
 // Atribui o ponteiro void ptvoid a um ponteiro para um float.
 // O ponteiro para float, pf, armazena o endere‡o de ptvoid que ‚ o
 // endere‡o de valor.
 pf = static_cast<float *>(ptvoid);
 cout << "Endere‡o em pf: " << pf << endl;
 return 0;
}
iniobj01.cpp
#include <iostream>
using namespace std;
 class pessoa // Declara‡Æo da classe pessoa
 {
 public:
 void exibe(); // Prot¢tipo do m‚todo exibe()
 pessoa() : idade(15),sexo('M') // Construtor com inicializa‡Æo
 { }
 private:
 int idade;
 char sexo;
};
int main()
{
 // Cria objeto da classe pessoa, inicializado com os valores do construtor
 pessoa p1;
 p1.exibe(); // Objeto p1 chama o m‚todo exibe()
 return 0;
}
void pessoa::exibe() // Defini‡Æo do m‚todo exibe()
{
 cout << "Idade: " << idade << endl;
 cout << "Sexo: " << sexo << endl;
}
iniobj02.cpp
#include <iostream>
using namespace std;
 class pessoa // Declara‡Æo da classe pessoa
 {
 public:
 void exibe(); // Prot¢tipo do m‚todo exibe()
 // Construtor
 pessoa(int idade1,char sexo1) : idade(idade1),sexo(sexo1)
 { }
 private:
 int idade;
 char sexo;
};
int main()
{
 pessoa p1(15,'F'); // Cria objeto da classe pessoa, inicializando-o
 p1.exibe(); // Objeto p1 chama o m‚todo exibe()
 return 0;
}
void pessoa::exibe() // Defini‡Æo do m‚todo exibe()
{
 cout << "Idade: " << idade << endl;
 cout << "Sexo: " << sexo << endl;
}
pvoid01.cpp
#include <iostream>
using namespace std;
int main()
{
 int valor = 11; // Vari vel do tipo int
 float saldo = 99.55; // Vari vel do tipo float
 void * ptvoid; // Ponteiro void
 ptvoid = &valor; // Armazena em ptvoid o endere‡o de um int
 cout << "Endere‡o de valor: " << ptvoid << endl;
 ptvoid = &saldo; // Armazena em ptvoid o endere‡o de um float
 cout << "Endere‡o de saldo: " << ptvoid << endl;
 return 0;
}
explic01.cpp
#include <iostream>
using namespace std;
class teste // Declara‡Æo da classe teste
{
 public:
 int valor;
 teste(int valor1 = 10) : valor(valor1) // Construtor com 1 argumento
 { }
};
void exibe(teste); // Prot¢tipo da fun‡Æo nÆo-membro exibe()
int main()
{
 int k = 44;
 teste teste1(k); // Cria objeto da classe teste com o valor de k
 cout << "Argumento do tipo objeto: ";
 exibe(teste1);
 cout << "Argumento do tipo int: ";
 exibe(88);
 return
0;
}
void exibe(teste arg) // Defini‡Æo da fun‡Æo nÆo-membro exibe()
{
 cout << arg.valor << endl;
}
typcas01.cpp
#include <iostream>
using namespace std;
int main()
{
 int x = 10,y = 4;
 float q;
 q = static_cast<float>(x) / static_cast<float>(y);
 // A vari vel y sofre uma promo‡Æo para o tipo float, porque
 // a vari vel x, temporariamente, passou a ser float.
 // q = static_cast<float>(x) / y;
 cout << q;
 return 0;
}
typcas02.cpp
#include <iostream>
using namespace std;
void altera(const int * pt); // Prot¢tipo da fun‡Æo altera()
int main()
{
 int valor = 55;
 cout << "valor antes: " << valor << endl;
 altera(&valor); // Chama a fun‡Æo altera()
 cout << "valor depois: " << valor << endl;
 return 0;
}
void altera(const int * pt1) // Defini‡Æo da fun‡Æo altera()
{
 int * pt2;
 pt2 = const_cast<int *>(pt1);
 *pt2 = 999;
}
typcas03.cpp
#include <iostream>
using namespace std;
int main()
{
 int valor = 65;
 int * ptr = &valor;
 cout << *reinterpret_cast<char *>(ptr) << endl;
 return 0;
}
rtti01.cpp
#include <iostream>
#include <typeinfo>
using namespace std;
class ClaBase
{
 public:
 virtual void dummy()
 {
 }
};
class ClaDeriv : public ClaBase
{
};
int main()
{
 // Cria ponteiro para a classe-base
 ClaBase * PBase;
 // Ponteiro da classe-base aponta para objeto da classe derivada
 PBase = new ClaDeriv; 
 cout << "PBase: " << PBase << " ";
 cout << "Nome do tipo: " << typeid(PBase).name() << endl;
 // Cria novo ponteiro a partir do ponteiro PBase, via dynamic_cast
 ClaDeriv * PDeriv = dynamic_cast<ClaDeriv*>(PBase);
 if (PDeriv != 0)
 {
 cout << "PDeriv: " << PDeriv << " ";
 cout << "Nome do tipo: " << typeid(PDeriv).name();
 }
 else
 {
 cout << "ConversÆo imposs¡vel" << endl;
 return 1;
 }
 return 0;
}
// Cria novo ponteiro a partir do ponteiro PBase
// ClaDeriv * PDeriv;
// PDeriv = dynamic_cast<ClaDeriv*>(PBase);

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?