Ir ao conteúdo

Posts recomendados

Postado
Eu sou muito burro e não consigo entender de forma alguma pra que std  e :: servem por exemplo essa .h aqui:


#ifndef AVIAO_H_INCLUDED
#define AVIAO_H_INCLUDED

class Aviao{
  public:
    int vel=0;
    int velMax;
    std::string tipo;
    Aviao(int tp);
    void imprimir();
    private:


};, 
Aviao::Aviao(int tp){ 
       if(tp==1){
        tipo="Jato";
        velMax=800;

       }else if (tp==2){
         tipo="Monomotor";
         velMax=350;
       }else if (tp==3){
         tipo="Planador";
         velMax=180;
       }
}

void Aviao::imprimir(){
     std::cout << "Tipo.............: " << tipo << std::endl;
     std::cout << "Velocidade Maxima: " << velMax << std::endl;
     std::cout << "Velocidade Atual.: " << vel << std::endl ;
     std::cout <<"-----------------------" << std::endl;

}

#endif // AVIAO_H_INCLUDED

Eu não sei o por que desses std e ::  e também me questiono sobre o que é método construtor, se algém poder me explicar de uma maneira bem simples mas completa eu agradeceria.

 

  • Obrigado 1
Postado

@nicaranha     pelo que sei esse tal de std significa  standard , e na verdade ele não serve para nada , mas todas as funções na linguagem c++ precisa dele colocado antes dela , e é muito chato isso mesmo ,então para melhorar inventaram o tal de using namespace std ; , que se colocado no início do código não é necessário  colocar std .

#include <iostream>
using namespace std;
int main(){
    cout<<"assim não precisa de usar o std"<<endl;
    return 32768;
}

 

  • Curtir 1
Postado
7 horas atrás, nicaranha disse:

 :: servem

em c++ isso chama se chama metodo

normalmente a classe em si vai nos .h

você pode ter 200 classes

para saber que essa função pertence a aviao

e n a carro

void aviao::ini(){}

void carro::ini(){...}

classes são nada mais que sacos de funções ou structs com metodos

digamos que posso ter 2 variaveis j

ou mais

uma global

int j;

e outra

namespace B { int j = 2; }

se eu faço B::j

me refiro a j do b

assim posso ter 200 j

1000

infinitos

se eu fizer somente j

é o que ta fora

é a mesma coisa com as classes

se tiver aviao::ini

quer dizer o ini que ta declarado na classe aviao

a.png.5d089fe15fbc0d7f7a7fc09a820e9865.png

 

  • Curtir 2
Postado
9 horas atrás, devair1010 disse:

e na verdade ele não serve para nada

 

🤔 Acha mesmo que teria algo na linguagem que não serve para nada?

 

namespaces são uma solução para um problema comum: colisão de nomes. std é o nome do namespace que contém as funções da biblioteca padrão, STL. 

 

9 horas atrás, devair1010 disse:

todas as funções na linguagem c++ precisa dele colocado antes dela

 

Não. De modo algum. Apenas as funções que estão nesse namespace, std, as funções que estão em  <iostream>

 

9 horas atrás, devair1010 disse:

e é muito chato isso mesmo ,então para melhorar inventaram o tal de using namespacxe std ;

 

Não é o caso. E nem é chato: é "uma mão na roda", como dizia minha avó.

 

Imagine que você escreva uma classe Pilha, uma classe Fila, uma classe Arvore e todas tenham o método inserir(). E logo você vai gostar de existir namespace e o operador de escopo, o tal "::". Essas coisas que não "servem pra nada"

 

é a maneira do sistema saber onde procurar a função.

 

Já pensou em como poderia usar uma função sua chamada cout()? Pois é...

#include <iostream>
namespace MeuMundo
{
    void cout()
    { std::cout << "Na funcao cout()" << std::endl; }
};

using namespace MeuMundo;
int main()
{
    std::cout << "Hello World!\n";
    cout();
};

Mostra

Hello World!
Na funcao cout()

Recomendo MUITO conseguir um livro de qualidade sobre C++.

adicionado 14 minutos depois

construtor é o método chamado automaticamente quando você declara algo de uma classe. Há um destrutor também, que é chamado também automaticamente.

 

Você pode ter quantos construtores precisar para uma classe. E eles podem ter parâmetros totalmente diferentes, graças ao tal polimorfismo.

 

E se você derivar a classe --- a tal herança ---  os construtores e destrutores são chamados em cascata.

 

Cada classe tem apenas um destrutor.

 

Recomendo muito conseguir um livro sobre C++. Essa linguagem é enorme e sofisticada.

  • Obrigado 2

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...