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

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - 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