Форум программистов, компьютерный форум CyberForum.ru

Почему вместо 2 выводится белеберда? - C++

Восстановить пароль Регистрация
 
babobka
 Аватар для babobka
1 / 1 / 0
Регистрация: 20.10.2010
Сообщений: 166
Записей в блоге: 1
01.12.2011, 21:43     Почему вместо 2 выводится белеберда? #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// mamalclass.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
#include <conio.h>
 
class mamal
{   public:
    mamal(int itsa,int itsw);
    mamal();
 
        ~mamal(){}
    void speak(){std::cout<<"mamal say:"<<'\n';}
    int getage(){return a;}
    int getw(){return w;}
    int a,w;
    protected:
    int itsa, itsw;
};
 
class dog:public mamal
{   public:
    void bark(){std::cout<<"woof-woof"<<'\n';}
 
};
 
mamal::mamal(int itsa, int itsw):itsa(a), itsw(w){}
mamal::mamal():
itsa(2), itsw(3){}  
 
 
int main()
{   
    dog sharik;
    sharik.speak();
    sharik.bark();
    std::cout<<"sharik is "<<sharik.getw()<<" years old";
    _getch();
    return 0;
}
Почему вместо 2 выводится белеберда?

Добавлено через 3 минуты
все. понял ошибку
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.12.2011, 21:43     Почему вместо 2 выводится белеберда?
Посмотрите здесь:

C++ Почему неправильно выводится массив?
Почему выводится разный результат? C++
C++ Почему не полностью выводится массив?
Указатели, почему выводится строка вместо символа? C++
Почему выводится весь массив C++
C++ wchar_t. Вместо буквы выводится число
C++ Почему выводится ноль?
C++ Почему выводится в виде таблицы и почему не работает сортировка

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Сыроежка
Заблокирован
01.12.2011, 21:47     Почему вместо 2 выводится белеберда? #2
Потому что у вас путаница в членах базового класса. У вас имеются четыре данных -члена класса

int a,w;
int itsa, itsw;

В конструкторе по умолчанию вы инициализируете int itsa, itsw;, а в функции int getw(){return w;} возвращаете переменную, которая не была инициализирована!
babobka
 Аватар для babobka
1 / 1 / 0
Регистрация: 20.10.2010
Сообщений: 166
Записей в блоге: 1
01.12.2011, 21:48  [ТС]     Почему вместо 2 выводится белеберда? #3
дададададаадада. понял уже
Yandex
Объявления
01.12.2011, 21:48     Почему вместо 2 выводится белеберда?
Ответ Создать тему
Опции темы

Текущее время: 03:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru