Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.02.2012, 09:35   #1
mirash8842
Новичок
Джуниор
 
Регистрация: 04.02.2012
Сообщений: 2
По умолчанию Отображение чисел (С++)

Помогите разобраться почему в простой программе, которая через конструктор получает числа (типа int), происходит некорректное отображение в консоли

Используется следующий класс:
Код:
#include "stdafx.h"
#include <string>
using namespace std;

class Date
{
public:
	Date (int, int, int);
	
	void setDen (int);
	int getDen ();

	void setMonth (int);
	int getMonth ();
	
	void setYear (int);
	int getYear ();
	
	void displayDate ();

private:
	int den;
	int month;
	int year;
};
Код:
#include "stdafx.h"
#include "Date.h"
#include <iostream>
using namespace std;

Date::Date (int n1, int n2, int n3)
{
	setDen (n1);
	setMonth (n2);
	setYear (n3);
}

void Date::setDen (int n1)
{
	n1=den;
}
int Date::getDen ()
{
	return den;
}

void Date::setMonth (int n2)
{
	n2=month;
}
int Date::getMonth ()
{
	return month;
}
	
void Date::setYear (int n3)
{
	n3=year;
}
int Date::getYear ()
{
	return year;
}
	
void Date::displayDate ()
{
	cout << "data ravna " << getDen() << "\\" << getMonth() << "\\" << getYear() << endl;
}
Сама программа:
Код:
#include "stdafx.h"
#include "Date.h"
#include <iostream>
#include <conio.h>


using namespace std;

int main ()
{

Date date1 (31, 2, 1989);
Date date2 (25, 1, 1956);
Date date3 (6, 5, 2012);

date1.displayDate ();
date2.displayDate ();
date3.displayDate ();

getch();
return 0;
}
В итоге получаем совсем другой вывод:
data ravna 1\3395344\1962588
data ravna 40635225\1962684\1962728
data ravna 1962596\1962588\1776695024
mirash8842 вне форума Ответить с цитированием
Старый 04.02.2012, 09:50   #2
Korben5E
Форумчанин
 
Аватар для Korben5E
 
Регистрация: 13.07.2010
Сообщений: 346
По умолчанию

потому что:
n1=den;
n2=month;
n3=year;
и следовательно у тебя возвращается мусор из памяти
будь внимательнее
Non est culpa vin, sed culpa bibentis
Korben5E вне форума Ответить с цитированием
Старый 04.02.2012, 12:49   #3
mirash8842
Новичок
Джуниор
 
Регистрация: 04.02.2012
Сообщений: 2
По умолчанию

Понял. Спасибо большое!
mirash8842 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дана последовательность вещественных чисел. каждая пара чисел задает границы отрезка. Найти количество целых чисел на отрезках 'studentka' Помощь студентам 6 30.11.2011 18:35
Вводится 10 чисел. Найти среднее арифметическое положительных чисел и произведение отрицательных. Руся93 Помощь студентам 14 02.10.2011 13:12
Delphi. найти последовательность всех чисел от 1 до n, кроме чисел с одинаковыми цифрами bayda06 Помощь студентам 7 01.07.2010 18:18
Ввести несколько чисел (кол-во чисел запрашивать с экрана). Определить, сколько чисел, меньших заданного Lirika Помощь студентам 0 08.05.2010 21:39
Отображение скрытых файлов и папок и отображение розширения всех файлов beegl Общие вопросы Delphi 10 14.12.2008 22:02