elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  warning en C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: warning en C++  (Leído 4,892 veces)
misterharry

Desconectado Desconectado

Mensajes: 12


Ver Perfil
warning en C++
« en: 27 Junio 2010, 02:51 am »

Hola, me estoy iniciando en la programacion de C++ estoy compilando una tarea para la Universidad, pero me arroja dos warnings:

C:\Users\Har\Desktop\Taller.cpp||In constructor 'calle::calle(int, int)':|
C:\Users\Har\Desktop\Talle2.cpp|23|warning: 'calle::nro' should be initialized in the member initialization list|
C:\Users\Har\Desktop\Taller2.cpp|23|warning: 'calle::sentido' should be initialized in the member initialization list|
||=== Build finished: 0 errors, 2 warnings ===|

el programa funciona bien, pero me causa duda esos warnings, tambien trate poniendole inline pero me arrojaba el mismo warning en la otra linea xD
le pregunte a mi profesor y me dijo que lo ignorara D: que no es muy poco etico si quiero programar bien.

el warning lo manda en calle(int a,int b){nro=a;sentido=b;}

Código
  1. class calle
  2. {
  3.        int nro,sentido;
  4.    public:
  5.        calle(int a,int b){nro=a;sentido=b;}
  6. };
  7.  

desde ya muchas gracias por todo :D


En línea

nicolas_cof


Desconectado Desconectado

Mensajes: 348


Into the Wild


Ver Perfil WWW
Re: warning en C++
« Respuesta #1 en: 27 Junio 2010, 03:20 am »

Fijate de ponerlo asi...

Código:
class calle
{
    private:
        int nro, sentido;
    public:
        calle( int a, int b ){ this->nro = a; this->sentido = b; }
};

Otra forma

Código:
class calle
{
    private:
        int nro, sentido;
    public:
        calle( int a, int b ) : nro( a ), sentido( b ) { }
};

Salu10.


« Última modificación: 27 Junio 2010, 03:38 am por nicolas_cof » En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: warning en C++
« Respuesta #2 en: 27 Junio 2010, 03:22 am »

¿Qué compilador?

A mi me compila bien así:

Código:
leo@lein:~/Escritorio/c_proyect$ cat code.cpp
#include <iostream>
class calle
{
    public:
        int nro,sentido;
    public:
        calle(int a,int b)
        {
            nro = a;
            sentido = b;
        }
};
int main()
{
    return 0;
}
leo@lein:~/Escritorio/c_proyect$ g++ code.cpp -o code
leo@lein:~/Escritorio/c_proyect$
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
nicolas_cof


Desconectado Desconectado

Mensajes: 348


Into the Wild


Ver Perfil WWW
Re: warning en C++
« Respuesta #3 en: 27 Junio 2010, 03:29 am »

Cita de: Leo Gutiérrez.
class calle
{
    public:
        int nro,sentido;
    public:
        calle(int a,int b)
        {
            nro = a;
            sentido = b;
        }
};

Una pregunta, no seria redundante poner 2 veces public? O te confundiste y quisiste poner private?

Salu10.
En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: warning en C++
« Respuesta #4 en: 27 Junio 2010, 03:44 am »

Cita de: Leo Gutiérrez.
class calle
{
    public:
        int nro,sentido;
    public:
        calle(int a,int b)
        {
            nro = a;
            sentido = b;
        }
};

Una pregunta, no seria redundante poner 2 veces public? O te confundiste y quisiste poner private?

Salu10.

No, quise ponerlas, me gusta ser lo más explícito posible.

@nicolas_cof, ¿crees que está incorrecto lo que hice? :-\
« Última modificación: 27 Junio 2010, 03:51 am por Leo Gutiérrez. » En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: warning en C++
« Respuesta #5 en: 27 Junio 2010, 03:56 am »

Leo, es redundante. Pones un solo public arriba como bien dice Nico y ya esta. En el caso que sean muchos miembros en todo caso podría ser discutible pero en este es redundante. Igualmente los miembros están declarados private por algo en el código inicial. Los miembros de una clase por defecto son de carácter privado.

En cuanto al warning, hazle caso o simplemente déjalo pasar. En este caso no tiene relevancia alguna y lo puedes solucionar simplemente inicializando las variables con un valor neutro o dejandolo pasar en caso que dichas variables tengan garantizado un valor útil.

Saludos
« Última modificación: 27 Junio 2010, 03:58 am por Littlehorse » En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
misterharry

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: warning en C++
« Respuesta #6 en: 27 Junio 2010, 04:00 am »

muchas gracias a todos por las repuestas

el unico que no mando warnig fue este:

Código:
class calle
{
    private:
        int nro, sentido;
    public:
        calle( int a, int b ) : nro( a ), sentido( b ) { }
};

los otros de igual forma funcionan, pero mandan advertencia al igual que el mio..
otra vez muchas gracias :D

a por cierto, uso codeblocks y tanto en win como ubuntu mandaba el mismo

eso si si alguien pudiera explicar a que se debe el warnings seria genial ;D

thank you!!! ;)
En línea

nicolas_cof


Desconectado Desconectado

Mensajes: 348


Into the Wild


Ver Perfil WWW
Re: warning en C++
« Respuesta #7 en: 27 Junio 2010, 04:07 am »

misterharry, de aca puedes leer algo... http://www.cprogramming.com/tutorial/initialization-lists-c++.html

Leo Gutiérrez., no creo que sea incorrecto, simplemente me parecio redundante!

De ultima nos podemos juntar con el amigo Bjarne y lo conversamos ;D

Salu10.
En línea

misterharry

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: warning en C++
« Respuesta #8 en: 27 Junio 2010, 04:15 am »

Citar
Si no fuera por C, programaríamos en BASI, PASAL y OBOL

jajajjajjajajaa... q risa!!!

gracias nicolas_cof le echare un ojo ;)

y en mi opinion lo de Leo no es relevante, creo que se dio cuenta del detalle.
Pero bueno, es solo una linea mas de codigo, no afecta en nada o si?

En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: warning en C++
« Respuesta #9 en: 27 Junio 2010, 10:42 am »

No, no afecta, pero tienen razón, las variables miembro son declaradas por defecto a private, yo las cambié a mi gusto a public, haciendo mal, no entendí el contexto de tu código.

Saludos.

En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Warning: mysql_fetch_assoc(): en Dreamweaver CS5 con BD
PHP
DJmixmancar 5 7,855 Último mensaje 17 Diciembre 2010, 03:20 am
por DJmixmancar
getwd() warning!
Programación C/C++
<<<-Basura->>> 3 4,043 Último mensaje 15 Septiembre 2011, 10:07 am
por Eternal Idol
¿Qué es este warning?
.NET (C#, VB.NET, ASP)
SARGE553413 4 2,850 Último mensaje 1 Septiembre 2014, 07:19 am
por 6666
Warning omitir el aviso en php
Desarrollo Web
mysqlway 1 1,802 Último mensaje 20 Diciembre 2014, 19:51 pm
por MinusFour
warning en practica, concatenar dos numeros
Programación C/C++
lanak_29 1 1,470 Último mensaje 30 Marzo 2015, 14:04 pm
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines