Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Что означает & в моём случае Доброго утра/дня/вечера/ночи Учусь работать с памятью и попутно с Cheat Engine Имеется пример: (0x3BD3E490+0x2EF8) & 0xFFF Вопрос: Что означает "& 0xFFF" для суммы значений HEX... https://www.cyberforum.ru/ cpp-beginners/ thread2492042.html Все числа, которые встречаются в строке, поместить в отдельный целочисленный массив C++
Условие: Вводится строка, содержащая буквы, целые неотрицательные числа и иные символы. Требуется все числа, которые встречаются в строке, поместить в отдельный целочисленный массив. Например,...
C++ Запись значения по адресу Я имею адрес 0x23f6H, как я могу в этот адрес записать нужное мне значение ? Прошу помогите, очень надо. https://www.cyberforum.ru/ cpp-beginners/ thread2492014.html C++ Тонкости наследования https://www.cyberforum.ru/ cpp-beginners/ thread2491983.html
Допустим я написал класс, описывающий некую структуру данных, поля которой содержат указатели на этот же класс. Как обернуть структуру в "контейнер", который добавляет новые поля (к примеру счетчик...
C++ Задача Словарик
подскажите как решается эта задача. Вася любитель пофантазировать. Но с правописанием у него очень трудно. За содержание по контрольному сочинению Васе ставят хорошие оценки, а вот за грамотность...
C++ програмные прерывания https://www.cyberforum.ru/ cpp-beginners/ thread2491951.html
Как вызвать программное прерывание? Читаю книгу по системному программированию и в ней сейчас "прохожу тему" системных вызовов и там есть описание как они вызываются и обрабатываются ,так вот Если...
C++ Возникло необработанное исключение по адресу 0x73A62CF2: исключение Microsoft C++: std::bad_array_new_length Доброго времени суток, уважаемые форумчане :) Подскажите начинающему программисту. Ругается на необработанное исключение по адресу 0x73A62CF2. Я так понимаю, что здесь что-то не ладно с длиной... https://www.cyberforum.ru/ cpp-beginners/ thread2491950.html Что не так и так ли? C++
1591 на ACMP https://********/asp/do/index.asp?main=task&id_course=3&id_section=23&id_topic=241&id_problem=1561 #include<bits/stdc++.h> int gcd(int x,int y){ if(y==0) return x; else...
C++ С какого стандарта в C++ динамический массив можно объявлять как статический? Здравствуйте. С какого стандарта в C++ динамический массив можно объявлять, как статический? Т.е. вот так: cin >> n; int b; https://www.cyberforum.ru/ cpp-beginners/ thread2491896.html C++ Вывести количество подряд идущих элементов https://www.cyberforum.ru/ cpp-beginners/ thread2491885.html
Дан массив из 15 элементов. Вывести количество подряд идущих одинаковых элементов, например 5, 5, 2, 2, 4, 10, 10, 10... сделал таким образом int main() { setlocale(LC_ALL, "rus"); int arr =...
Реализуйте алгоритм бинарного поиска C++
Не могу понять в чем ошибка, за задачу 0 балов. Входные данные В первой строке входных данных содержатся натуральные числа N и K (0NK100000). Во второй строке задаются N элементов первого массива,...
C++ Cout объект? привет! class exem{ public: int a=11; https://www.cyberforum.ru/ cpp-beginners/ thread2491852.html
2 / 2 / 1
Регистрация: 04.04.2018
Сообщений: 351
0

Мой стринг, виртуальные функции - C++ - Ответ 13777098

18.08.2019, 11:04. Показов 1471. Ответов 3
Метки (Все метки)

Пример из книги - жалуется на 83 строку - не существует подходящего конструктора для преобразования const char в String
Нужно сделать константной строку? Тогда ошибка в функции strcpy жалуется на str
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
// strimem.cpp
// Класс String с экономией памяти
// Перегружаемая операция присваивания и конструктор         // копирования
#include <iostream>
#include <cstring>              // для strcpy() и т. д.
using namespace std;
///////////////////////////////////////////////////////////
class strCount                  // Класс-счетчик уникальных строк
{
private:
    int count;                  // собственно счетчик
    char* str;                  // указатель на строку
    friend class String;        // сделаем себя доступными
    //методы скрыты          
//---------------------------------------------------------
    strCount(char* s)           // конструктор с одним аргументом
    {
        int length = strlen(s);   // длина строкового
                                  // аргумента
        str = new char[length + 1]; // занять память
                                  // под строку
        strcpy(str, s);           // копировать в нее аргументы
        count = 1;                  // считать с единицы
    }
    //---------------------------------------------------------
    ~strCount()                 // деструктор
    {
        delete[] str;
    }         // удалить строку
};
///////////////////////////////////////////////////////////
class String                    // класс String
{
private:
    friend class strCount;
    strCount* psc;              // указатель на strCount 
public:
    String()                    // конструктор без аргументов
    {
        psc = new strCount(NULL);
    }
    //---------------------------------------------------------
    String(char* s)             // конструктор с одним аргументом
    {
        psc = new strCount(s);
    }
    //---------------------------------------------------------
    String(String& S)           // конструктор копирования
    {
        psc = S.psc;
        (psc->count)++;
    }
    //---------------------------------------------------------
    ~String()                   // деструктор
    {
        if (psc->count == 1)         // если последний
                                  // пользователь,
            delete psc;             // удалить strCount
        else                      // иначе  
            (psc->count)--;         // уменьшить счетчик
    }
    //---------------------------------------------------------
    void display()              // вывод String
    {
        cout << psc->str;         // вывести строку
        cout << " (addr=" << psc << ")";  // вывести адрес
    }
    //---------------------------------------------------------
    void operator = (String& S) // присвоение String
    {
        if (psc->count == 1)         // если последний пользователь, 
            delete psc;             // удалить strCount
        else                      // иначе
            (psc->count)--;         // уменьшить счетчик
        psc = S.psc;              //использовать strCount
                                  //аргумента
        (psc->count)++;           //увеличить счетчик
    }
};
///////////////////////////////////////////////////////////
int main()
{
    String s3 = "Муха по полю пошла, муха денежку нашла";
    cout << "\ns3="; s3.display(); //вывести s3
 
    String s1;                     //определить объект String
    s1 = s3;                       //присвоить его другому объекту
    cout << "\ns1="; s1.display(); //вывести его
 
    String s2(s3);                 //инициализация
    cout << "\ns2="; s2.display(); //вывести
                                   //инициализированное
    cout << endl;
    return 0;
}


Вернуться к обсуждению:
Мой стринг, виртуальные функции C++
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.08.2019, 11:04
Готовые ответы и решения:

Виртуальные и чисто виртуальные функции
Чем они отличаются?? если можно, с примерами. И как из виртуальной функции сделать чисто...

Виртуальные функции
Доброго времени суток. Есть задание. Создать абстрактный класс Function (функция) с виртуальными...

виртуальные функции
сделать какой либо из методов класса виртуальным #include&lt;iostream.h&gt; #include&lt;stdio.h&gt; class...

Виртуальные функции
Не работает код. Проблема в виртуальной функции. Как это можно исправить? #include &lt;iostream&gt; ...

3
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.08.2019, 11:04

Виртуальные функции
Имеется базовый класс Shape: class Shape { protected: virtual void drawShape() { } } и...

Виртуальные функции
Составить программу в С Buildere. Объявить базовый класс с именем person {имя, возраст, группа}....

Виртуальные функции
Если в базовом классе А есть виртуальная функция show() перегруженная, то есть имеется три разные...

виртуальные функции
C++ подскажите пожалуста на словах код писать ненадо. как преопределить функцию virtual Print(). ...

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