Como Criar sua própria Classe de Vectores em C++

Nesse vídeo reforçaremos nosso conhecimento em POO além de como criar seu próprio std::cout além de outras dicas.


Como Criar sua própria Classe de Vectores em C++

🔊 Nesse vídeo veremos como criar nossa própria classe de vectores similar à do SFML que servirá para reforçarmos nosso conhecimento em Programação Orientada à Objetos bem como diminuir o excesso de código ganhando desempenho nas nossas aplicações. Além de “recriação” do std::cout, estruturas de união e entre outras dicas.

🎁 Pacote Promocional C++: https://terminalroot.com.br/promo

Assista ao Vídeo


Código feito no vídeo

#include <iostream>
#include <fstream>

template<class T>
class Vector2 {
  public:
    T x, y;
    Vector2(T xin, T yin) : x(xin), y(yin){}

    Vector2 operator + (const Vector2& rhs){
      return Vector2(x + rhs.x, y + rhs.y);
    }

    Vector2 operator - (const Vector2& rhs){
      return Vector2(x + rhs.x, y + rhs.y);
    }

    Vector2 operator * (const Vector2& rhs){
      return Vector2(x + rhs.x, y + rhs.y);
    }

    Vector2 operator / (const Vector2& rhs){
      return Vector2(x + rhs.x, y + rhs.y);
    }

    Vector2 operator -= (const Vector2& rhs){
      return Vector2(x + rhs.x, y + rhs.y);
    }

    Vector2 operator *= (const Vector2& rhs){
      return Vector2(x + rhs.x, y + rhs.y);
    }

    Vector2 operator /= (const Vector2& rhs){
      return Vector2(x + rhs.x, y + rhs.y);
    }

    void print(){
      std::cout << x << " " << y << '\n';
    }

    /*void increment(int number){
      x += number;
      y += number;
    }*/

    Vector2 & increment(int number){
      x += number;
      y += number;
      return *this;
    }

    friend std::ostream & operator << (
        std::ostream & stream, const Vector2 & v){
      return stream << v.x << " " << v.y;
    }
};

using Vector2f = Vector2<float>;
using Vector2i = Vector2<int>;
using Vector2u = Vector2<unsigned>;

int main(){
  Vector2 v1(1, 2), v2(3, 4);

  Vector2f v1f(1.2f, 2.1f), v2f(3.4f, 4.3f);
  Vector2i v1i(1, 2), v2i(3, 4);
  Vector2u v1u(1, 2), v2u(3, 4);

  Vector2 v3 = v1 + v2;

  std::cout << "v3.x: " << v3.x << '\n';
  std::cout << "v3.y: " << v3.y << '\n';
  v3.print();

  v3.increment(10)
    .increment(5)
    .increment(2);

  std::cout << v1 << '\n';

  return 0;
}

👀 Veja também:


cpp cppdaily gamedev


Compartilhe


Nosso canal no Youtube

Inscreva-se


Marcos Oliveira

Marcos Oliveira

Desenvolvedor de software
https://github.com/terroo


Crie Aplicativos Gráficos para Linux e Windows com C++

Aprenda C++ Moderno e crie Games, Programas CLI, GUI e TUI de forma fácil.

Saiba Mais

Receba as novidades no seu e-mail!

Após cadastro e confirmação do e-mail, enviaremos semanalmente resumos e também sempre que houver novidades por aqui para que você mantenha-se atualizado!