Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 1
Регистрация: 30.11.2015
Сообщений: 16

Реализовать класс строки CMyString и приложение для тестирования этого класса

30.11.2015, 21:14. Показов 1678. Ответов 6

Студворк — интернет-сервис помощи студентам
Реализовать класс строки CMyString и приложение для тестирования этого класса. Класс должен иметь поле pStr - указатель на хранимую строку символов, конструктор, выполняющий начальное выделение 1 байта памяти, занесение в него 0 и сохранение указателя на этот байт в pStr, деструктор, освобождающий область памяти, на которую указывает pStr, методы Set и Get, позволяющие соответственно модифицировать хранимую классом строку и получить указатель на нее.



Метод Set следует объявить как

void Set(char* pNewStr);

В теле этого метода следует освободить область памяти, на которую указывает pStr, узнать размер области памяти, требуемой для хранения строки, на которую указывает pNewStr, выделить область памяти необходимого размера и сохранить указатель на нее в pStr, скопировать содержимое строки из pNewStr в pStr.



Метод Get следует объявить как не принимающий никаких параметров и возвращающий char*. В теле следует указать только return pStr;


Помогите разобрать задание
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.11.2015, 21:14
Ответы с готовыми решениями:

Реализовать класс строки CMyString и приложение для тестирования этого класса
Реализовать класс строки CMyString и приложение для тестирования этого класса. Класс должен иметь поле pStr - указатель на хранимую строку...

Реализовать класс "Динамический массив"
1. Согласно заданию реализовать класс абстрактного типа данных (далее АТД) как динамический массив. Для этого определение класса должно...

Как реализовать приложение для тестирования (вопрос/ответ)
Всем привет, я пока что андроид лузер, начал писать програмку с тестами так как тестов планируется несколько, то собрал их в листвью на...

6
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
30.11.2015, 21:19
ilyaabcf, у вас в задании все по полочкам разложено. Вы бы хоть какие-нибудь свои наработки выложили.
1
0 / 0 / 1
Регистрация: 30.11.2015
Сообщений: 16
30.11.2015, 21:32  [ТС]
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// z3.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "stdio.h"
#include "malloc.h"
#include "cstring"
#include "iostream"
#include "cstdio"
char* p;
class CMyString
{
public:
    char* pStr;
    CMyString();//конструктор
    ~CMyString();//деструктор
    void Set(char* pNewStr)
    {
        p = (char *)calloc(strlen(pNewStr), 1);
    }
    char Get()
    {
        pStr =
    }
};
 
CMyString::CMyString()
{
    p = (char *)calloc(1, 1);
    pStr = "0";
    p = pStr;
}
 
CMyString::~CMyString()
{
    system("pause");
}
 
int main()
{
    CMyString Funct;
    char strok[100];
    printf("Введите строку\n");
    scanf("%s", &strok);
    Funct.Set(strok);
}
Тут не правильно, но это все, что я понял
0
30.11.2015, 21:34

Не по теме:

А ради кого сделаны теги C++?

0
0 / 0 / 1
Регистрация: 30.11.2015
Сообщений: 16
30.11.2015, 21:56  [ТС]
Я не знаю C++ абсолютно. Только cin и cout. На этом мои знания заканчиваются

Добавлено через 14 минут
Можно даже пример похожей программы скинуть. Было бы круто
0
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
30.11.2015, 22:16
Лучший ответ Сообщение было отмечено ilyaabcf как решение

Решение

Цитата Сообщение от Aymurat Посмотреть сообщение
А ради кого сделаны теги C++?
Цитата Сообщение от ilyaabcf Посмотреть сообщение
Я не знаю C++ абсолютно.
Теги С++ - это способ оформления кода на форуме. Выглядят они так [CPP]// код[/CPP]. А вот результат использования тегов:
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
#include <iostream>
#include <cstring>
 
class CMyString
{
    char *pStr;
    public:
        CMyString() : pStr(nullptr) {} // если не поддерживается С++11, то вместо nullptr просто 0
        ~CMyString() { delete[] pStr; }
        void SetStr(const char *);
        char *GetStr() const { return pStr; }
};
 
void CMyString::SetStr(const char *pNewStr)
{
    delete[] pStr;
    pStr = new char[strlen(pNewStr) + 1];
    strcpy(pStr, pNewStr);
}
 
int main()
{
    CMyString my_string;
    my_string.SetStr("Hello, world!");
    std::cout << my_string.GetStr() << std::endl;
    
    std::cin.get();
}
1
0 / 0 / 1
Регистрация: 30.11.2015
Сообщений: 16
30.11.2015, 22:29  [ТС]
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
33
34
35
36
37
38
39
40
41
42
43
44
45
// z3.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "stdio.h"
#include "malloc.h"
#include "cstring"
#include "iostream"
#include "cstdio"
char* p;
class CMyString
{
public:
    char* pStr;
    CMyString();//конструктор
    ~CMyString();//деструктор
    void Set(char* pNewStr)
    {
        p = (char *)calloc(strlen(pNewStr), 1);
    }
    char Get()
    {
    }
};
 
CMyString::CMyString()
{
    p = (char *)calloc(1, 1);
    pStr = "0";
    p = pStr;
}
 
CMyString::~CMyString()
{
    system("pause");
}
 
int main()
{
    CMyString Funct;
    char strok[100];
    printf("Введите строку\n");
    scanf("%s", &strok);
    Funct.Set(strok);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.11.2015, 22:29
Помогаю со студенческими работами здесь

Написать функцию для производного класса, чтобы потом когда вызывать её, она работала только для экземпляров этого класс
using System; using System.IO; using System.Threading.Tasks; using System.Collections.Generic; namespace Program { class...

Определить класс-строку. В класс включить два конструктора: для определения класса строки строкой символов и п
Определить класс-строку. В класс включить два конструктора: для определения класса строки строкой символов и путем копирования другой...

Определить класс-строку. В класс включить два конструктора: для определения класса строки строкой символов и путем копир
Всем привет, помогите пожалуйста, я уже всю голову сломал, не знаю как решить ее... Определить класс-строку. В класс включить два...

Класс "Дроби" и перегрузка операторов для этого класса
Всем Доброго времени суток. Есть учебная задача по условиям которой необходимо реализовать класс &quot;Дроби&quot; и перегрузку...

Описать класс "Многочлен" и перегрузку операций для этого класса — сложения, умножения, вычитания
Доброго времени суток)) Как можно описать класс &quot;Многочлен&quot; ну и перегрузку операций для этого класса - сложения, умножения, вычитания. ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru