Ir ao conteúdo
  • Cadastre-se

C++ Como se usa :: std e o que é método construtor


nicaranha

Posts recomendados

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
Link para o comentário
Compartilhar em outros sites

@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
Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!