Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Aecttann
6 / 6 / 0
Регистрация: 19.10.2013
Сообщений: 336
#1

Создать класс с 1 полем: динамический массив char - C++

30.04.2014, 17:30. Просмотров 853. Ответов 3
Метки нет (Все метки)

Необходимо создать класс с 1 полем: динамический массив char. С конструктором, куда передавать динамический массив char. В main создать объект этого класса, передавая в него массив char, который задан в main.
Подправьте, пожалуйста, всё работает корректно но необходимо выделять память для массива в конструкторе и в головном файле:
Хедер:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
##ifndef INTER_H 
#define INTER_H
 
class Kill {
private:
    char *Word;
public:
    Kill (char *W);
    Kill ();
 
    char *getWord();
    void move(char *Wordn);
void print();
    };
#endif  // INTER_H


реализация:
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include "inter.h"
 
using namespace std;
 
Kill::Kill( char *W = new char [20])
 
{
    Word = W;
}
 
Kill::Kill()
 
{
    Word = " "; 
 
}
char *Kill::getWord()
{
 
    return Word;
}
 
void Kill::move(char *Wordn)
{
    Word = Wordn;
}
void Kill::print() 
 
{
    cout  << Word << endl;
}


головной:
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include "inter.h"
 
using namespace std;
 
int main()
 
{
setlocale(LC_ALL, "RUS");
 
Kill target_one("lol1");
Kill target_two;
 
target_one.print();
target_two.print();
 
target_one.move("lol2");
 
target_two.move("lol3");
 
target_one.print();
cout << endl;
 
target_two.print();
cout << endl;
 
cout << "Текущее значение: " << target_one.getWord() << endl;
cout << "Текущее значение: " << target_two.getWord() << endl;
 
    return 0;
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.04.2014, 17:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создать класс с 1 полем: динамический массив char (C++):

Класс с полем - динамический массив. Функция сложения массивов - C++
Я написал класс, который содержит динамический массив целых чисел. Создал два объекта типа класс. У меня не получается сделать перегрузку...

Класс с полем - динамический массив: нужен наглядный пример - C++
Дайте пожалуйста пример класса с полем - динамический массив, и создание такого объекта с инициализацией массива.

Создать класс-динамический массив - C++
Помогите, пожалуйста!! не могу решить задачу, очень важно! Условие:создайте класс – динамический массив. В качестве элементов массива...

Посмотрите объявление вектора и попытайтесь создать динамический массив, содержащий элементы типа char - C++
#include &lt;iostream&gt; #include &lt;vector&gt; using namespace std; int main() { vector&lt;int&gt; DynArrNums (3); DynArrNums = 365; ...

Создать класс который реализует динамический массив - C++
Доброго времени суток! Помогите с такой задачей - Создать класс который реализует динамический массив(нельзя использовать шаблон...

Создать шаблонный класс - двумерный динамический массив - C++
Задание:Создать шаблонный класс - двумерный динамический массив. Тип элементов массива определяется параметром шаблона. Предусмотреть...

3
jurok_85
241 / 225 / 78
Регистрация: 21.02.2013
Сообщений: 520
Завершенные тесты: 1
30.04.2014, 17:37 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
ну вот так можно, тока тут все в одном файле
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
#include <iostream>
#include <cstring>
using namespace std;
 
class dynam_arr{
private:
char* arr;
 
public:
dynam_arr(const char* arr1);
void print()
{
    cout << arr;
}
};
 
dynam_arr::dynam_arr(const char* arr1)
{
    int size = strlen(arr1);
    arr = new char[size+1];
    strcpy(arr, arr1);
    arr[size] = '\0';
}
int main()
{
   char* ch = "abvgde";
   dynam_arr array(ch);
   array.print();
 
    return 0;
 
}
1
Aecttann
6 / 6 / 0
Регистрация: 19.10.2013
Сообщений: 336
30.04.2014, 18:28  [ТС] #3
jurok_85, спасибо!

Добавлено через 15 минут
Цитата Сообщение от jurok_85 Посмотреть сообщение
arr[size] = '\0';
для чего необходима эта строка?
просто если её удалить, ничего не меняется
0
jurok_85
241 / 225 / 78
Регистрация: 21.02.2013
Сообщений: 520
Завершенные тесты: 1
30.04.2014, 18:50 #4
обычно в с++ строки заканчиваются таким символом '\0'. Это для определения последнего символа вывода.
1
30.04.2014, 18:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.04.2014, 18:50
Привет! Вот еще темы с ответами:

Создать класс с одним полем и класс наследник с другим - C++
Создать класс Демо с одним полем Дата(инт) создать конструктор по умолчанию, с параметром копирования. Добавить gete и sete. От класса...

Создать класс Matrix, реализующий двухмерный динамический массив типа int - C++
Здравствуйте! Задание: Создать класс Matrix, реализующий двухмерный динамический массив типа int. Конструктор должен заполнять массив...

Как создать динамический массив типа string? Как создать класс такого массива? - C++
Как создать динамический массив типа string? Как создать класс такого массива? =-O Помогите, пожалуйста, очень нужна помощь!

Класс Organizaton: создать каталог организаций города (динамический массив) и отсортировать по названию - C++
Создать класс Organization . Переменная типа Organization должна содержать следующую информацию: название; адрес ; директор ; телефон....


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru