Introducci贸n a C++

1

Todo lo que aprender谩s sobre C++

2

驴Qu茅 es programar y por qu茅 aprender C++?

Conceptos Generales de C++

3

La Historia de C++ y sus diferencias con C

Preparando el entorno de trabajo

4

Instalando Codeblocks

5

Pasos para instalar en mac

6

Ejecutando nuestro primer programa

7

驴Qu茅 son las librer铆as STD? - Portada del Proyecto

Manejo de memoria

8

驴Qu茅 es la memoria y tipos de datos?

9

Alojando variables en memoria

10

驴C贸mo usar operadores?

11

驴Qu茅 son los apuntadores?

12

Reto: Escribir un programa que calcule 谩reas.

Entrada de datos y funciones

13

驴C贸mo introducir datos a nuestro programa?

14

驴C贸mo usar condicionales?

15

Usando condicionales

16

驴C贸mo encapsular c贸digo en funciones ?

17

驴Qu茅 son los par谩metros y como usarlos?

18

Reto: Juego narrativo implementando condicionales y entrada de datos.

Loops y arreglos

19

驴Qu茅 son los arreglos?

20

驴Qu茅 son los Loops?

21

Programando Loops

22

Loops , arreglos y arreglos bidimensionales

23

Dibujando el mapa de nuestro juego con arreglos

24

Manipulando mi jugador con inputs en arreglos unidimensionales

25

Arreglos bidimensionales

26

Reto: Moviendo a mi personaje en mi arreglo bidimensional

Lectura de Archivos

27

Creando y leyendo un archivo externo

28

Leyendo archivos externos

29

Reto: En el mapa, crear punto de inicio y salida del jugador

Programaci贸n Orientada a Objetos

30

驴Qu茅 es POO?

31

Definiendo una clase y creando sus instancias

32

Encapsulaci贸n

33

Abstracci贸n

34

Herencia

35

Propiedades de clase en herencia

36

Polimorfismo

Finalizando nuestro proyecto

37

Creaci贸n de personaje y archivo de encabezado

38

Moviendo mi personaje con entrada de datos

39

Mapa

40

Interacci贸n entre el personaje y el mapa

41

Paredes

42

Optimizando trazado de mapa

43

Colisiones

44

Creando nuestra portada de juego

45

Tesoro y victoria

46

Conclusiones

47

Proyecto final

No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

脷ltima oportunidad para asegurar tu aprendizaje por 1 a帽o a precio especial

Antes: $249

Currency
$189/a帽o

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscr铆bete

Termina en:

0D
6H
27M
9S

Definiendo una clase y creando sus instancias

31/47
Recursos

Las clases son un tipo de dato complejo definido por los programadores. Son algo parecido a los molde de galletas porque nos ayuda a crear todas las galletas independientes unas de otras pero con el mismo tama帽o y la misma forma dependiendo del molde que elegimos para crearlas.

Las instancias son los objetos inicializados de una clase, una entidad 煤nica basada en una clase. Podemos decir que cada galleta es una instancia de nuestro molde de galletas.

Todas las clases tienen propiedades p煤blicas y privadas y cada instancia de nuestras clases tiene estas mismas propiedades pero con valores diferentes.

Por ejemplo: podemos crear una clase llamada gatito con las propiedades nombre, edad y color, algo as铆 como un molde de gatitos. Cuando creamos una instancia de esta clase vamos a definir estas 3 propiedades para cada uno de nuestros gatitos y cada uno tendr谩 valores diferentes (aunque, en este caso, los valores pueden ser iguales)

Gatito1 se llama 鈥溾淔ernando鈥濃, tiene 6 a帽os y es de color blanco mientras que Gatito2 se llama 鈥溾淭omy鈥濃, tiene 2 a帽os y es de color negro.

Aportes 50

Preguntas 3

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Las clases, yo siempre las he pensado como un videojuego. A m铆 me gusta mucho Starcraft II que es un juego de estrategia. Por lo que una clase de ejemplo ser铆a un soldado de los Terran, si hago 10 soldados cada uno de ellos tiene el mismo molde, pero si a uno de ellos le hacen da帽o a ese se le baja la energ铆a, pero al resto de soldados no, por lo que ser铆a un objeto independiente de los dem谩s.

#include <iostream>

using namespace std;
class Cat//CLASE LLAMADA CAT
{
public: //lo que pueden conocer porque es PUBLICO
    string Name; // una viriable tipo caracter

   Cat() // CONSTRUCTOR es la funcion que se llama a la instacia que gato aparece en el mundo
   {
     Name = "Guapo";
   }
   Cat(string iName) // CONSTRUCTOR es la funcion que se llama a la instacia que gato aparece en el mundo
   {
     Name = iName;
   }
  void Meow() //ACCIONES funciones de mi clase y lo que hara es IMPRIMIR
  {
     cout<< Name<< " dice meow "<<endl;
  }
};
int main()
{
    Cat myfirstkitty;
    Cat mysecondkitty("Blacky");

    myfirstkitty.Meow();

    for(int i =0; i<3; i++)
    {
       mysecondkitty.Meow();
    }

    return 0;
}

Podemos crear varios constructores en nuestras clases de C++ para programar los casos donde recibimos o no recibimos par谩metros. En JavaScript podemos usar valores por defecto para los casos donde no enviamos argumentos al constructor de nuestras clases pero no podemos crear atributos privados (en teoria no pero en la pr谩ctica si, yo solo digo 馃槄).

C++:

class Cat
{
        public string: Name;

        Cat()
        {
                Name = "Nombre por defecto";
        }

        Cat(string iName)
        {
                Name = iName;
        }
}

JS:

class Cat {
        constructor(name = "Nombre por defecto") {
                this.name = name;
        }
}

![](

#include <iostream>

using namespace std;

class cat
{
public:
    string name;

    cat()
    {
        name="Guapo";
    }
    cat(string namePuppy)
    {
        name=namePuppy;
    }

    void meow()
    {
        cout<<name<<" "<<"meow"<<endl;
    }
};

int main()
{
    string name;
    int i;


    cout<<"Dime el nombre de tu nuevo gatito: ";
    cin>>name;
    cat myFrirstPuppy;
    cat mySecondPuppy(name);

    cout<<"cual quieres leer(1/2): ";
    cin>>i;

    if(i==1){
         myFrirstPuppy.meow();
    }else{
        mySecondPuppy.meow();
    }
    return 0;
}```

una clase es la abstraccion de un objeto del mundo real el cual posee atributos. Un ejemplo;
La clase Heroe, puede tener; nombre, vida, mana, XP, Lvl. etc.

Al menos eso es lo que creo.

<code>
#include<iostream>

using namespace std;

class alumno{
public:
    bool aprobado;
    float mediaT = 0;
    string nombre;
    alumno(string aNombre,float parc,float inter){
        nombre = aNombre;
        mediaT = (parc*0.5) + (inter * 0.5);
    }
    bool Nota(){
        aprobado = false;
        if(mediaT >= 5){
            aprobado = true;
        }
        return aprobado;
    }
};

int main(){
    float parcial, intermedio;
    bool res;

    cout << "Introduce la nota del parcial:" << endl;
    cin >> parcial;
    cout << "Introduce la nota del intermedio:" << endl;
    cin >> intermedio;

    alumno Carlos("Carlos",parcial,intermedio);

    cout << Carlos.mediaT << endl;
    res = Carlos.Nota();
    if(res == true){
        cout << "Has aprobado" << endl;
    }
    else
        cout << "Has suspendido" << endl;
    return 0;
}
</code>

Hecho!!!

   void Meow ()
    {
        cout << Name << " dice: meow"<< endl;
    }
};

int main()
{
    Cat MyFirstKitty;
    Cat MySecondKitty ("Toriel");

    MyFirstKitty.Meow();

    for ( int i = 0; i< 3; i++){

        MySecondKitty.Meow();
    }

}```

Cre铆 que iba a ser un poco m谩s dif铆cil entenderlo, pero con esta explicaci贸n creo que ha quedado totalmente claro. Emocionado por lo que se viene!

Una Clase es una plantilla

Cada clase es un modelo que define un conjunto de variables (el estado), y m茅todos apropiados para operar con dichos datos (el comportamiento). Cada objeto creado a partir de la clase se denomina instancia de la clase. Las clases son un pilar fundamental de la programaci贸n orientada a objetos.

Una clase es una plantilla a partir de la cual creamos objetos鈥s como un molde para un pastel. Tienes el molde pero a partir de ese molde puedes crear pasteles cada uno diferente鈥 Uno de chocolate, otro de vainilla, etc鈥 Pero a煤n as铆, todo fueron hechos con el mismo molde

Excelente clase

En C++ tambi茅n existen los valores por defecto, que se usan para que, en caso de que un cierto par谩metro no se ingrese o especifique, entonces se tome ese valor por defecto.
Por ejemplo, los siguientes c贸digos son equivalentes:

//1era forma
Cat () {
            name = "Guapo";
 }
 Cat (string iName) {
            name = iName;
 }

O tambi茅n:

//2nda forma
Cat (string iName = "Guapo") {
            name = iName;
 }

Una clase es como el molde donde se crearia un objeto; un objeto seria una instancia de una clase.

Clase: Una clase puede ser una clasificaci贸n de objetos o una categor铆a. Por ejemplo: Si hablamos de una tortuga pertenecer铆a a la clase reptil.

Clases suena como a especie de algo o un grupo definido de caracteristicas especificas

#include <iostream>

using namespace std;


class Pepe
{
    public:
    float Porcentaje;
    Pepe(float CantidadParte, float CantidadTotal)
    {
        cout<<"El Porcentaje es"<<endl;
        Porcentaje = (CantidadParte / CantidadTotal)*100;

    }
};



int main()
{
    float Cant1, Cant2;
    cout << "Escriba la parte del total"<<endl;
    cin >> Cant1;
    cout << "Escriba el total"<<endl;
    cin >> Cant2;
    Pepe Porciento(Cant1, Cant2);
    cout<<Porciento.Porcentaje<<"%"<<endl;
    return 0;
}```

Clase: Tipo da dato complejo definido por el programador. Es una abstracci贸n de un objeto cualquier y que posee diferentes atributos, En otras palabras es el molde que va definir un tipo especifico de objeto y los objetos creados (o inicializados) a partir de esa clase especifica se denominan Instancias.

Una clase es el molde o plantilla de donde saldr谩n nuestros objetos.

una galleta es un objeto independiente

clase: Componente del programa principal (main)

Clase: Conjunto de variables y funciones

Clases: Es parecido a una funcion encierra bloque de codigos dentro de ella, pero en este caso sera utilizada para crear otros objetos, con la misma caracteristicas, es decir imagina tener un molde de galletas al poner la masa sobre la mesa el molde de galletas creara la misma forma una y otra ves, a las creaciones hechas por el molde o la clase se les llama Instancia

Hecho 馃槂

#include <iostream>
using namespace std;

class cat
{
 public:
 string name;

 cat ()
 {
     name="juanito";
 }

 cat(string Iname)
 {
    name=Iname;
 }
void Meuw()
{
    cout<<name<<"  dice Meuw"<<endl;
}

};

int main()
{
    cat primergato;
    cat segundogato("tory");

    primergato.Meuw();

    for(int i=0; i<3; i++)
    {
        segundogato.Meuw();
    }


    return 0;
}```

Entonces una clase es una plantilla con la cual podemos crear distintos objetos con el fin de darle soluci贸n a determinados problemas. Esos objetos son instancias de la clase.

Clase: es la forma de como esta integrado un objeto

Esta clase esta genial! la sencilla forma en que explica deja claro el funcionamiento de las clases de forma inmediata.

#include <iostream>

using namespace std;


class Cat
{
    public:
        string Name;

        Cat()
        {
            Name = "Guapo";
        }

        Cat(string iName)
        {
            Name = iName;
        }

        void Meow()
        {
            cout<< Name << " Dice Meow!"<< endl;
        }
};

int main()
{
    Cat MyFirtsKitty;
    Cat MySecondKitty("Angus");

    //cout<<"Me haz creado y soy un gato!  Mi nombre es: " << MyFirtsKitty.Name << endl;
    //cout<<"Me haz creado y soy tu segundo gato!  Mi nombre es: " << MySecondKitty.Name << endl;

    MyFirtsKitty.Meow();

    for(int i=0; i<4; i++)
    {
        MySecondKitty.Meow();
    }


    return 0;
}

#include <iostream>

using namespace std;

class Fecha
{
private:
    int hora, mins, seg;
    long time;

public:
    Fecha(int,int,int);
    Fecha(long);
    void darFecha();
};
Fecha::Fecha(int _hora, int _mins, int _seg)
{
    hora=_hora;
    mins=_mins;
    seg=_seg;
}

Fecha::Fecha(long time)
{
    hora=int(time/10000);
    mins=int((time-hora*10000)/100);
    seg=int(time-hora*10000-mins*100);

}
void Fecha::darFecha()
{
    cout<<"El tiempo es: "<<hora<<':'<<mins<<':'<<seg<<endl;
}
int main()
{
    int h, m, s;
    long complet;

    cout<<"dime la hora: ";
    cin>>h;
    cout<<"dime los mins: ";
    cin>>m;
    cout<<"dime los segs: ";
    cin>>s;
    cout<<"dime la hora completa: ";
    cin>>complet;

    Fecha primeraHora(h,m,s);
    Fecha segundaHora(complet);
    cout<<"======================"<<endl;
    primeraHora.darFecha();
    cout<<" "<<endl;
    segundaHora.darFecha();

    return 0;

}```
#include <iostream>

using namespace std;

class Cat{
    public:
    string Name;

    Cat (){
        Name = "Guapo";
    }

    Cat (string iName){
        Name = iName;
    }

    //Se le da una funcipon al gato

    void Meow (){
        cout << Name << " dice meow"<<endl;
    }


};

int main()
{
    Cat MyFirstKitty;
    Cat MySecondKitty("Toriel");

    MyFirstKitty.Meow();

    for (int i = 0; i < 3; i++){
        MySecondKitty.Meow();
    }


    return 0;
}

Las funciones de las clases tambi茅n suelen ser llamadas m茅todos.

Este man es un loquillo con esos ejempos. 馃槈

Ya tengo conocimientos de POO porque ya he programado en Java. En un contexto en el que eres un chef que prepara galletas de diferentes formas, una clase podr铆a pensarse como ese 鈥渕olde鈥 que te permite crear varias galletas de esa determinada forma.
O por ejemplo si quisieras hacer un programa que simule el juego de la batalla naval. Podr铆as crear una clase Ship. Y luego podr铆as instanciar (crear a partir de esa clase) varios ships. De esa forma estar铆as creando varios objetos de tipo Ship.

驴Las clases serian entonces lo mismo que una estructura? Porque son mas o menos parecidas, agradecer铆a que me ayudaran con la duda.

CLASE
.
Una clase define un nuevo tipo de dato que se especifica en la forma de un objeto.
Es importante tener claro esto: Una clase es una abstracci贸n l贸gica.
No es sino hasta que un objeto de esa clase sea creado que la representaci贸n f铆sica de la clase existe en la memoria.
.
.

.
ESTA P脕GINA lo explica perfecto

buena clase

Esto de las clases es algo nuevo para mi y aunque no le haya entendido del todo bien al principio, creo que fue una buena introducci贸n. Muy buena clase

Todo en c++ esta asociado con clases y objetos (y sus respectivos atributos y m茅todos).
Una clase es un tipo de dato complejo y funciona como un marco, contenedor o 鈥榖lueprint鈥 para crear objetos (estos 煤ltimo son, a su vez, elementos o miembros que componen la clase).

tengo una duda, el nombre del constructor debe tener el mismo nombre de la clase? de ser as铆, por que? saludos.

Trayendo un ejemplo practico, y como aficionado al futbol, creo que una clase serian los jugadores de todo el Fifa. Cada equipo tiene N numero de jugadores; 煤nicos e independientes, los cuales cuentan con distintas caracter铆sticas y valores asignados. Aunque en el fondo, todos son jugadores.

As铆 me quedo mi clase 馃槃

#include <iostream>
using namespace std;

class pets
{
   public:
    string type;
    string name;
    string action;

    pets(string itype, string iname, string iaction)
    {
      type = itype;
      name = iname;
      action = iaction;
    }

    void hablar()
    {
        cout << name << " Dice: Hola soy un " << type <<endl<<endl;
    }
};

int main()
{
 pets mascota1("Perro","Scooby", "ladrar");
 pets mascota2("Gato", "Cosmico", "maullar");

 cout << "Tipo de mascota: " << mascota1.type<< endl;
 cout << "Nombre: " << mascota1.name << endl;
 cout << "Accion: " << mascota1.action << endl <<endl;
 mascota1.hablar();

 cout << "Tipo de mascota: " << mascota2.type << endl;
 cout << "Nombre: " << mascota2.name << endl;
 cout << "Accion: " << mascota2.action <<endl<< endl;
 mascota2.hablar();

 return 0;
}

Resultado 馃槃

Yo creo que clases debe ser un tipo de objeto que comparte caract茅risticas como la clase pakiman en el curso de Freddy de programaci贸n b谩sica.

#include<iostream>
#include<conio.h>

using namespace std;

class Dog {
public:
    string Name;
        Dog()
    {
        Name = "Toby";
    }

    Dog (string iName)
    {
        Name = iName;
    }
    void Guau()
    {
        cout << Name << " GUAU GUAU GUAU " << endl;
    }
};

class Cat {
public: 
    string Name;
    Cat()
    {
        Name = "Gatitis";
    }

    Cat(string iName)
    {
        Name = iName;
    }
    void Meow()
    {

        cout << Name << " Dice guAUUU na mentira dice Miau" << endl;
    }

};


int main() {
    
    Cat MyFirstKitty;
    Cat MySecondKitty ("Sazi");
    Dog MyFirstDog;
    Dog MySecondDog; ("Poli");
   
    

    for (int i = 0; i < 3; i++)
    {
        MySecondKitty.Meow();
    }
    
    
    for (int i = 0; i < 5; i++)
    {
        MySecondDog.Guau();
    }

    getch();
    return 0;
}

la verdad que es un buen profe!

Excelente Clase!

*Mis apuntes sobre: 鈥淒efiniendo una clase y creando sus instancias鈥

Es un tipo de dato complejo, definido por el programador. Se podr铆a decir que una clase es un plano (blueprint) de un objeto.

驴Qu茅 es una instancia? --> Es un objeto inicializado de una clase. Estos son una entidad 煤nica basada en una clase.

Les comparto mi c贸digo:

#include <iostream>

using namespace std;

class Cat
{
public:
    string name;
    Cat()
    {
        name="Cute";
    }
    Cat(string iName)
    {
        name=iName;
    }
    void meouw()
    {
        cout<<name<<": Says meow :3"<<endl;
    }
};

int main()
{
    Cat myFirstKitty;
    Cat mySecondKitty("Tori");

    myFirstKitty.meouw();
    for(int i=0;i<3;i++)
    {
        mySecondKitty.meouw();
    }

    return 0;
}

Gracias!

<code>

#include <iostream>
class SuperVillano{
public:
int amigos;
bool tPelon, esListo, esPrieto;
std:: string allias, nReal;
void gradoMaldad (int){
if (0){
std::cout << 鈥淓XTREMADAMENTE MALO鈥<<std::endl;
}
else if (<=1){
std::cout << 鈥淢uy Malo鈥<< std::endl;
}
}
void Millonez(bool, bool){
if (true && true){
std::cout<<鈥淓XTREMADAMENTE POBRE鈥<<std::endl;
}
else if ( true || true){
std::cout<<鈥淏uena Millonez鈥<<std::endl;
}
else if (false && false){
std::cout<<鈥淢illonez al millon鈥<<std::endl;
}
}
void Rikura(bool){
if (true){
std::cout<<鈥淓XTREMADAMENTE RIKO鈥<<std::endl;
}
else if (false){
std::cout<<鈥淣o riko鈥<<std::endl;
}

}
};
int main (){
SuperVillano guason = SuperVillano();
std::cout<<鈥淕uason:鈥<<std::endl;
guason.gradoMaldad(0);
guason.Millonez(false, false);
guason.Rikura(true);
return 0;
}

Que tu hermana menor entre en el momento en que dice 鈥淕uapo dice Miau鈥 es algo priceless jajajaja no es queja, amo estos ejemplos. Vuelven la clase m谩s amena y reduce el estr茅s. M谩s cuando te estresas por que no pusiste un 鈥;鈥 y por eso tu gato no maulla xD