Category: programação (C plus plus)

POO, conceitos

#funções overloaded, são funções com o mesmo nome se:
tiverem diferentes tipos de argumentos
tiverem diferentes numeros de argumentos
tiverem diferentes tipos e numeros de argumentos

#funções com argumentos por omissão:
deve ser feito na declaração da função usando o =

Tags : ,

POO, conceitos

Operadores de saída e entrada:
Operador de saída: << Operador de entrada: >>

podemos usar o namespace para organizar ou evitar conflitos, inclusive podemos criar o nosso próprio exemplo:
namespace exemplo {
// definições de funções, variáveis,
// classes, etc.
}

e para evitar o uso dos operadores :: aquando da biblitoeca iostream
std::cout
faz-se:
using namespace std;

Bibliotecas a usar:
#include <iostream>
#include <string>

Cast: conversão explícita de tipo:
static_cast, de ponteiros do tipo void* para ponteiros de outros tipos
exemplo:
double d = 0.0;
int x = d;
x = static_cast(d);

const_cast,
reinterpret_cast,
dynamic_cast, Converte um ponteiro para um uma classe, num ponteiro para uma classe derivada, derivada da derivada
auto, o compilador determina automaticamente o tipo de uma variável
exemplo:
double val1 = 1;
double val2 = 2;
auto x = val1 + val2;

Ciclo for range-based, para quando todos os elementos de uma colecção (array, vector, …) devem ser processados
for(auto & elemento: tabela)
exemplo:
int a[10];
for(auto & elemento: a){
elemento = 4;
}

A constante nullptr em C++11, A constante nullptr pode ser usada para inicializar ponteiros nulos.

Referências,pode:
ser passada a uma função
ser retornada por uma função
ser criada de forma independente.

Ponteiro como parâmetro de uma função
exemplo:
void f(int *n);

int main() {
int i = 0;
f(&i);
cout << “\nNovo valor de i:” << i << endl;
return 0;
}

void f(int *n) {
*n = 100;
}

Referência como parâmetro de uma função
exemplo:
void f(int & n);

int main() {
int i = 0;
f(i);
cout << “\nNovo valor de i:” << i << endl;
return 0;
}
void f(int & n) {
n = 100;
}

Referência como retorno de uma função
exemplo:
int & f( );
int x = 0; //tem que ser global
int main( ){
f( ) = 100;
cout << x << endl;
return 0;
}
int & f( ){
return x;
}

Constantes, uma constante deve ser inicializada, já que não é possível fazer-lhe atribuições.
A palavra const antes do * impede qualquer alteração ao objecto apontado através do ponteiro em causa
A palavra const depois do * torna constante o ponteiro.
A palavra const antes e depois do * torna impossivel alterar o objeto apontado

Quando usar: quando uma função nao deve alterar uma variavel

Parâmetros do tipo referência para constante
_ganhar eficiencia de passar a referência ao invés do valor

exemplo conclusão

#include <iostream>

void t(int*) {}

void u(const int* cip) {
//*cip = 2; // ERRO: modifica valor
int i = *cip; // OK: copia valor
//int* ip2 = cip; // ERRO: ip2 nao é pont. para const
}

const char* v() {
// Retorna o endereço de uma string: 
return "result of function v()";
}


void main()
{
int x = 0;
int* ip = &x;
const int* cip = &x;
t(ip);
//t(cip);//Erro:t() nao pode receber ponteiro para constante
u(ip);  // OK u() pode receber ponteiro sem restricoes
u(cip); // OK u() pode receber ponteiro para constante 
//char* cp = v(); // Erro: nao deve ser possivel alterar 
// a string retornada por v() 
const char* ccp = v(); // OK 
system("pause");
}

faltou:
referências a lvalue e rvalue

Tags : ,

POO, conceitos

Uma classe representa a especificação do novo tipo de dados que representa a entidade. Definida por:
Dados
Funções
Essas funções só possam ser aplicadas a esses dados
Esses dados só podem ser manipulados por essas funções
Um objecto é uma variável (instância) de uma classe

A programação orientada a objectos utiliza os mecanismos de:
encapsulamento
_Dados e código que manipula esses dados são reunidos dentro da mesma entidade (classe), formando uma unidade íntegra e indivisível, autónoma em termos de dados e funcionalidade, que vai funcionar como um bloco de construção do programa
herança
_A herança é o processo pelo qual um tipo de dados pode herdar as propriedades de outro e ter ainda as suas propriedades específicas e sem ter que repetir código
polimorfismo
O polimorfismo um mecanismo/propriedade que permite manipular dados diferentes por aquilo que têm de comum, sem necessidade de repetir código nem estruturas de dados. O mesmo interface (molde) pode usar-se para especificar diversas acções com significado análogo

Tags :

estudar11 – classes e a herança híbrida e múltipla

#include <cstdlib>
#include <iostream>

using namespace std;

class Avo{

public:
    
    void mostraMsg(){
        cout << "eu sou milionario\n";
    };
};

class Mae{

public:
        void verifica(){
        cout << "eu sou inteligente\n";
    };
};


class Pai : public Avo{

public:
};

class Filho : public Pai, public Mae{

public:
};

int main(int argc, char** argv) {
    Filho f;
    
    f.verifica();
    f.mostraMsg();
    
    return 0;
}

Tags : , , ,

estudar10 – classes e a herança múltipla

#include <cstdlib>
#include <iostream>

using namespace std;

class Avo{

public:
    
    void mostraMsg(){
        cout << "eu sou milionario\n";
    };
};

class Pai : public Avo{

public:
};

class Filho : public Pai{

public: 
};

int main(int argc, char** argv) {
    Filho f;
    
    f.mostraMsg();
    
    return 0;
}
Tags : , ,

estudar09 – classes e a herança ()

#include
#include

using namespace std;

class pai{

public:

void dinheiro(){
cout << "eu sou um milionario";
}

};

class filho : public pai{
//a classe filho herdou a função do pai através do principio da herança;

public:

};

int main(int argc, char** argv) {
filho s;

s.dinheiro();

return 0;
}
Tags : , , ,

estudar08 – classes e construtores

#include <cstdlib>
#include <iostream>

using namespace std;

class Estudante{

    int notas;
    
public:
    
    Estudante(int p=50){ 
    //construtor: evitar que a classe tenha lixo qd começa
    //que a classe comece com valores vladios qd começa
    //consrutor parameterizado (int p)
    //ou podemos iniciar o construtor logo com o valor (int p=50)    
        
        notas=p;
    }
    
    void getDados(){
        cout << notas;
    }
    
    void setDados(){
        cout << "\n Qual a nota ";
        cin >> notas;
    }
    

};

int main(int argc, char** argv) {
    Estudante s;
    
    s.getDados();
    return 0;
}
Tags : , ,

estudar07 – classes II

#include <cstdlib>
#include <iostream>

using namespace std;

class estudante{

    int id;
    char name[20];
    int s1;
    int s2;
    int s3;
    
public:
    void getDados(){
        cout << "\nqual o id? ";
        cin >> id;
        cout << "\nqual o nome? ";
        cin >> name;
        cout << "\nQual a nota da UC1 ?";
        cin >> s1;
        cout << "\nQual a nota da UC2 ?";
        cin >> s2;
        cout << "\nQual a nota da UC1 4";
        cin >> s3;
    }

    void mostraDados(){
        cout << "\n" << id << "\t" << name << "\t" << s1 << "\t" << s2 << "\t" << s3;
    }

};

int main(int argc, char** argv) {
    estudante s[10]; //array de objectos
    int n;
    
    cout << "\nQuantos estudantes? ";
    cin >> n;
    
    for(int i=0; i< n ; i++){
        s[i].getDados();
    }
    for(int i=0; i< n ; i++){
        s[i].mostraDados();
    }
        
    return 0;
}
Tags : , ,

estudar06 – classes

#include <cstdlib>
#include <iostream>

using namespace std;
//classes: classificação de alguma coisa

class estudante{
    
    //os atributos e propriedades, as variaveis
    int id;
    int notas;
    
    //membros da classe estudante, as funcoes dentro da classe
    
public:
    void getDados(){
        cout << "\n qual o seu id?";
        cin >> id;
        cout <<"\n qual a sua nota?";
        cin >> notas;
    }
    void mostraDados(){
        cout << "\n" << id << "\t" << notas << "\n";
    }
};


int main(int argc, char** argv) {
    estudante novo; //novo: instancia da classe estudante
    novo.getDados();
    novo.mostraDados();
    
    
    return 0;
}
Tags : ,

estudar05 – funções matemáticas

#include <cstdlib>
#include <iostream>

using namespace std;
//classes: classificação de alguma coisa

class estudante{
    
    //os atributos e propriedades, as variaveis
    int id;
    int notas;
    
    //membros da classe estudante, as funcoes dentro da classe
    
public:
    void getDados(){
        cout << "\n qual o seu id?";
        cin >> id;
        cout <<"\n qual a sua nota?";
        cin >> notas;
    }
    void mostraDados(){
        cout << "\n" << id << "\t" << notas << "\n";
    }
};


int main(int argc, char** argv) {
    estudante novo; //novo: instancia da classe estudante
    novo.getDados();
    novo.mostraDados();
    
    
    return 0;
}
Tags : ,

estudar04 – funções recursivas

#include <cstdlib>
#include <iostream>

using namespace std;

int contas(int n); //recursão: uma função que se chama a si propria

int main(int argc, char** argv) {
    
    cout <<"funcao contas - recursao\n";
    contas(10);
    return 0;
}

int contas(int n){
    
    if(n==0){
        return 1;
    }else{
        cout << "\n" << n;
     return (contas(n-1));
    }
}

Tags : ,

estudar03 – funções

#include <cstdlib>
#include <iostream>


using namespace std;

int mensagens(); //prototipo da função
int mostranumero(int n1, int n2);
int contas(int n1, int n2);
int contas2(int n1, int n2);


int main(int argc, char** argv) {

    mensagens();
    mostranumero(1,2);
    cout << contas(10,23) << "\n";
     cout << contas2(40,23) << "\n";
    
    
    return 0;
}


int mensagens(){
    cout << "conteudo de uma funcao\n";
        return 0;
}

int mostranumero(int n1, int n2){
    
    cout << n1 << " " << n2 << "\n";
    
    return 0;
}

int contas(int n1, int n2){
    int total=0;
    total=n1+n2;
    
    return total;
}

int contas2(int n1, int n2){
    
    return (n1+n2);
}
Tags : ,

estudar02 – controlo de estruturas

#include <cstdlib>
#include <iostream>


using namespace std;

int main(int argc, char** argv) {

    //if
    int idade=15;
    if(idade >18){
        cout << "bem vindo ao clube\n";
    }else{
        cout << "nao podes entrar no clube \n";
    }
    
    return 0;
}

Tags : ,

estudar01 – introdução ao c++

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char** argv) {
   cout << "ola mundo\n";
    
   int number;
   number=10;
    
   cout << number << "\n";
    
   int n1, n2, total, media;
    
   cout << "introduz um numero1" << "\n";
   cin >> n1;
   cout << "introduz um numero2" << "\n";
   cin >> n2;
   
   cout << "os numeros introduzidos foram " << n1 << " e " << n2 << "\n";
   total=n1+n2;
   media=total/2;
   
   cout << "o total vem: "<< total << "e a media vem: "<< media << "\n";
   
   //os arrays
   int a[5]={1,2,3,4,5};
   cout << a[0] << "\n";
   cout << a[1] << "\n";
   cout << a[2] << "\n";
   cout << a[3] << "\n";
   cout << a[4] << "\n";
   
return 0;
}
Tags : , , ,