Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.129.19.251] |
|
Страницы: (14) [1] 2 3 ... 13 14 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
Описать на языке СИ++ класс Cat, содержащий информацию об одном коте (кличка и год рождения). Переменные класса должны быть закрытыми (private). Строку необходимо хранить массивом char. Класс должен содержать:
- конструктор копирования; - конструктор, заполняющий все поля объекта значениями, помещены в параметрах; - методы для установки и получения значений полей объекта; - метод заполнения полей класса при помощи printf и scanf; - метод вывода информации о содержимом объекта на экран при помощи printf и scanf. Задание дали, а показать как это делается - не показали((( сама разобраться не могу!( |
Сообщ.
#2
,
|
|
|
Это элементарнейшая задача. Выкладывайте, то что уже сами написали, мы тут поможем, чем сможем.
Цитата smailvolf @ Задание дали, а показать как это делается - не показали((( Такого не бывает. Цитата smailvolf @ сама разобраться не могу!( Не хочу или не могу? Ну вот например даже если загуглить, по первой попавшейся ссылке можно найти какие то уроки по классам С++ - http://programmersclub.ru/21/ Добавлено И что конкретно не получается еще бы знать? Или за вас нужно написать задачу целиком? |
Сообщ.
#3
,
|
|
|
А что такое private, public и protected поля, конструктор, конструктор копии, вообще методы объясняли? И как они в определении класса размещаются?
Добавлено Здесь вообще предпочитают объяснять, что неправильно, и как правильно, а не писать с нуля. |
Сообщ.
#4
,
|
|
|
Начало как-то так:
class Cat { private: int god; // год рождения char kli4ka[32]; // кличка, ANSI public: Cat( int g, char *kli) { god=g; strncpy(kli4ka,kli,31); } // конструктор void Print(void) { printf("Год рождения котяры: %d, кличка особи: %s\n", god, kli4ka); } // вывод int GetGod(void) { return god; } // метод возвращения года int SetGod(int g) { god=g; return g>=0; } // 0-отрицательный год, 1-нормальный }; |
Сообщ.
#5
,
|
|
|
Цитата Славян @ int god; // год рождения ИМХО это не год рождения, а Бог год будет както так -> year Цитата Славян @ kli4ja Мат какойто. |
Сообщ.
#6
,
|
|
|
Цитата KILLER @ Ну бывает, бывает. Мат какойто. Цитата KILLER @ А вдруг они французский учат?.. год будет както так -> year |
Сообщ.
#7
,
|
|
|
Цитата Славян @ А вдруг они французский учат?.. Действительно, в перемешку с русскими коментами и английскими словами. Добавлено Еще у тебя лажа будет, если я в конструктор передам кличку в 32 символа или больше. Добавлено Цитата Славян @ Cat( int g, char *kli) { god=god; Тоже эпичная ошибка. |
Сообщ.
#8
,
|
|
|
Цитата KILLER @ Спешил, прошу пардона. Тоже эпичная ошибка. Цитата KILLER @ Таких длинных не бывает. Хотя... в современном мире как только не извратятся. Еще у тебя лажа будет, если я в конструктор передам кличку в 32 символа или больше. |
Сообщ.
#9
,
|
|
|
Цитата Славян @ Таких длинных не бывает. Хотя... в современном мире как только не извратятся. Бывает. Всегда защиту от дурака делать нужно. А у тебя переполнение буфера будет при 32 символах, плюс ко всему последний символ ты '\0'-ем не инициализируешь. |
Сообщ.
#10
,
|
|
|
Цитата KILLER @ Вы хотите, чтобы дама универсум сразу выдала? Если хоть на троечку вытянет - уже будет повод задуматься. Бывает. Всегда защиту от дурака делать нужно. |
Сообщ.
#11
,
|
|
|
Цитата Славян @ Вы хотите, чтобы дама универсум сразу выдала? Ну на месте препода, в первую очередь - я бы посмотрел код программы, и увидев твой код, мне очень захотелось бы ввести 40 символов. Цитата Славян @ Если хоть на троечку вытянет - уже будет повод задуматься. Троечку думаю и так поставят, за красивые глаза. Добавлено Славян, тебе еще последний элемент занулить нужно. То что ты исправил - это круто конечно. Но у тебя скорее всего массив будет содержать абракадабру, ты ж его нулями не инициализируешь. Поэтому при выводе printf'ом - дай боже, чтоб у тебя не упала прога с икцепшином. |
Сообщ.
#12
,
|
|
|
Цитата KILLER @ Да вы жутко злой препод!.. Ну на месте препода, в первую очередь - я бы посмотрел код программы, и увидев твой код, мне очень захотелось бы ввести 40 символов. Цитата KILLER @ В программировании красивые глаза плоховато котируются. Супыч докажет, надеюсь. Троечку думаю и так поставят, за красивые глаза. |
Сообщ.
#13
,
|
|
|
К слову ты совсем неверно написал свой strncpy. Последним параметром - нужно передавать длину строки, которую передают в конструктор, а не 31.
Добавлено Цитата Славян @ Да вы жутко злой препод!.. Почему? Цитата Славян @ В программировании красивые глаза плоховато котируются. Супыч докажет, надеюсь. Ну смотря что за универ тоже. |
Сообщ.
#14
,
|
|
|
Цитата KILLER @ Ну я не хочу универсум строить! И по этому дурацкому strncpy вопросы могут возникнуть к даме... Не, надо самóй чрез это пройти. Славян, тебе еще последний элемент занулить нужно. То что ты исправил - это круто конечно. Но у тебя скорее всего массив будет содержать абракадабру, ты ж его нулями не инициализируешь. Поэтому при выводе printf'ом - дай боже, чтоб у тебя не упала прога с икцепшином. |
Сообщ.
#15
,
|
|
|
Цитата KILLER @ К слову ты совсем неверно написал свой strncpy. Последним параметром - нужно передавать длину строки, которую передают в конструктор, а не 31. А все что после - занулить нужно. И вообще занулить массив в первую очередь нужно было. Добавлено Цитата Славян @ у я не хочу универсум строить! И по этому дурацкому strncpy вопросы могут возникнуть к даме... Не, надо самóй чрез это пройти. Так вот в том вся и делема А ты выдал класс ей какойто - ты ее запутаешь больше. Нужно было выдать или сразу что то рабочее, или хотя бы не делать таких явных ошибок. |