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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.07.2013, 03:26   #1
MikeDebil
 
Регистрация: 04.07.2013
Сообщений: 6
По умолчанию

Здравствуйте, я дебил.
Но, очень простенькая программа, иллюстрирующая использование конструкторов и деструкторов в производном классе, а также правила использовании и инициализации вот код программы:
Код:
#include <iostream>
#include <string.h>

using namespace std;
class team
{char title[100];
public:
    team(char *ttile0);
};

class player : public team
{
    char surname[100];
public:
    player(char *title0 ,char *surname0);
};
// описание конструкторов
team :: team(char *title0)
 : title(title0) // инициализация членов класса team
{
    strcpy(title, title0);
    cout << "Команда "<< title << " появляется на поле\n ";
}
player :: player(char *title0, char *surname0)
    : team(title0), // инициализация членов базовго класса
     surname(surname0)// инициализация членов класса player
{
    strcpy(surname, surname0);
    cout << "Игрок " <<surname<< " выходит на поле\n" ;
}

int main()
{   setlocale( LC_ALL,"Russian" );
    player P("Zenit", "Hulk");
    // ничего не делается но выполняются конструкторы
    return 0;
}
Здесь ругается компилятор на strcpy



А в этом коже нет и всё ровно:
Код:
#include <iostream>
#include <string.h>

using namespace std;
class Printer
{
    char model[15]; // модель принтера
    int year; // год выпуска
    int status; // ссотояние принетра
public:
    void set_print();
    void stop_print();
    void show();
    Printer(char *model0, int year0);
};
// Описание методов
void Printer::set_print()
{
    if(status==0) status=1;
}

void Printer::stop_print()
{
    status=0;
}

void Printer::show()
{
    cout <<"Model: "<<model <<"year: "<< year << " status: "<<status<<endl;
}
// Описание консутрктора
Printer::Printer(char *model0, int year0)
{
    strcpy(model, model0);
    year=year0;
    status=0;
}

int main()
{Printer P("Samsung 30x", 1999);// создание объекта типа Printer
P.show();
P.set_print();
P.show();
P.stop_print();
P.show();

    return 0;
}
Вот скрин ошибки в первой программе.
Вроде бы с функцией strcpy поступаю также как и в следующей
Изображения
Тип файла: jpg ошбка((.jpg (75.7 Кб, 145 просмотров)

Последний раз редактировалось Stilet; 04.07.2013 в 08:11.
MikeDebil вне форума Ответить с цитированием
Старый 04.07.2013, 05:27   #2
Ezhik Kihze
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 639
По умолчанию

Код:
title(title0) // инициализация членов класса team
т.е. вы пытаетесь выполнить
Код:
{char title[100];} = {char *title0}
И заголовок не в тему.
ICQ: 677936656 Gmail: ekEmbed@gmail.com
Ezhik Kihze вне форума Ответить с цитированием
Старый 04.07.2013, 05:41   #3
MikeDebil
 
Регистрация: 04.07.2013
Сообщений: 6
По умолчанию

не подскажешь, как исправить проблему в моём коде?
MikeDebil вне форума Ответить с цитированием
Старый 04.07.2013, 05:53   #4
MikeDebil
 
Регистрация: 04.07.2013
Сообщений: 6
По умолчанию

Пытался переделать со стрингами, ничего не получается
MikeDebil вне форума Ответить с цитированием
Старый 04.07.2013, 06:00   #5
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,609
По умолчанию

Такой код у меня работает:
Код:
#include <iostream>
#include <string.h>

using namespace std;

class team
{
char title[100];
public:
team(){}
team(char *ttile0);
};

team :: team(char *title0) 
{
strcpy(title, title0);
cout << "Команда "<< title << " появляется на поле\n ";
}

class player : public team
{
char surname[100];
public:
player(char *title0 ,char *surname0);
};

player :: player(char *title0, char *surname0)  : team(title0)
{
strcpy(surname, surname0);
cout << "Игрок " <<surname<< " выходит на поле\n" ;
}

int main()
{ 
setlocale( LC_ALL,"Russian" );
player P("Zenit", "Hulk");
return 0;
}
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 04.07.2013, 06:05   #6
MikeDebil
 
Регистрация: 04.07.2013
Сообщений: 6
По умолчанию

Спасибо огромное, сам додумал и исправил уже, только вот без этой строки
team(){}, но тоже работает. Это строка как-то влияет?
вопрос: как сделать так, чтобы твой код был в серой рамочке и подсвеченный цветами?)
MikeDebil вне форума Ответить с цитированием
Старый 04.07.2013, 07:38   #7
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,609
По умолчанию

Цитата:
Сообщение от MikeDebil Посмотреть сообщение
Спасибо огромное, сам додумал и исправил уже, только вот без этой строки
team(){}, но тоже работает. Это строка как-то влияет?
вопрос: как сделать так, чтобы твой код был в серой рамочке и подсвеченный цветами?)
У меня выдавалась ошибка, что нет подходящего конструктора, поэтому я добавил пустой конструктор. Чтобы вставить код в серую рамочку, нужно использовать [code]текст[/code]
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с strcpy() TheWanderer Общие вопросы C/C++ 13 04.07.2013 03:20
Проблема с strcpy() _Sequence_ Общие вопросы C/C++ 2 14.04.2013 19:49
ПРоблема с функцией! dpmkh Общие вопросы Delphi 6 12.10.2012 18:42
strcpy/writeable проблема. coNsept Общие вопросы C/C++ 8 02.09.2011 13:04
Проблема с функцией MeTeOpA C# (си шарп) 6 11.07.2011 00:07