Форум программистов, компьютерный форум CyberForum.ru

Строки, наследование - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как сделать что бы угол вводился в градусах http://www.cyberforum.ru/cpp-beginners/thread954451.html
Проблема в том что углы вводятся в радианах а нужно в градусах. Подскажите плз как єто осуществить. Вот исходник // Переход от алгебраической формы записи комплексного числа к показательной // и наоборот #include <iostream> using std::cin; using std::cout;
C++ Visual Studio 2012 Ошибка при компиляции программы Здравствуйте. Возникла проблема при компиляции данной программы: #include "stdafx.h" #include "string" #include "iostream" using namespace std; int main() http://www.cyberforum.ru/cpp-beginners/thread954450.html
С использованием функций и указателей отсортировать строки массива строк по убыванию C++
Суть задачи: с использование функций и указателей отсортировать строки массива строк по убыванию. Скажите что это оно выдает в выводе первой строки....не считает нормально кол-во пробелов в строке...причем именно в первой. В остальных все нормально .....//--------------------------------------------------------------------------- #include <vcl.h> #include <iostream.h> #include <conio.h>...
C++ Работа с массивами в С++ . Поиск общих элементов двух массивов
Здравствуйте! Есть такой у меня код . #include "stdafx.h" #include <iostream> #include <conio.h> #include <fstream> using namespace std; int main() { int h3 ; //массив для общих элементов ofstream file("D:\\First.DAT"); //создаём объект класса ofstream для записи его в файл
C++ Построение СДНФ и СКНФ http://www.cyberforum.ru/cpp-beginners/thread954435.html
Здравствуйте! Помогите, или подскажите как решить такую задачу: нужно автоматом сгенерировать таблицу истинности, затем ввести число 1991 (для примера) перевести данное число в двоичную систему счисления и записать то что вышло в результате перевода как функцию возле таблицы истинности, затем по результатам функции составить СКНФ и СДНФ. Подскажите как это сделать! Таблицу истинности я сделал...
C++ генератор случайных чисел в объекте Вообщем в объекте числа генерятся одни и те же, в main все норм(хотя рандомом их тож особо не назвоёшь, в ВСтудии и КодеБлокс видимо разные функции rand()? #include "NewNumber.h" #include <stdlib.h> #include <time.h> #include <iostream> using namespace std; void NewNumber::fillNumber(int a) подробнее

Показать сообщение отдельно
iNsomNia7
2 / 2 / 0
Регистрация: 19.11.2012
Сообщений: 32
14.09.2013, 18:40     Строки, наследование
Задача:
Вспомните пример STRCONV из главы 8. Класс String в этом примере имеет дефект: у него нет защиты на тот случай, если его объекты будут инициа- лизированы слишком длинной строкой (константа SZ имеет значение 80). Например, определение
String s = "Эта строка имеет очень большую длину и мы можем быть уверены, что она не уместится в отведенный буфер, что приведет к непредсказуемым последствиям.";
будет причиной переполнения массива str строкой s с непредсказуемыми последствиями вплоть до краха системы.
Создадим класс Pstring, производный от класса String, в котором предот- вратим возможность переполнения буфера при определении слишком длинной строковой константы. Новый конструктор производного класса будет копировать в str только SZ-1 символов, если строка окажется слиш- ком длинной, и будет копировать строку полностью, если она будет иметь длину меньшую, чем SZ. Напишите функцию main() программы для про- верки ее работы со строками разной длины.
Мое решение:

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
//9-2.cpp
#include <iostream>
#include <cstring>
using namespace std;
 
const int SZ = 80;
 
class String
{
protected:
    char stroka[SZ];
public:
    String()
    { stroka[0] = '\0'; }
    String(char a[])
    { strcpy(stroka, a);}
    void getstring()
    {
        cout << "Enter the string: ";
        cin >> stroka;
    }
    void disp() const
    {
        cout << "String: " << stroka << endl;
    }
};
 
class Pstring: public String
{
public:
    Pstring(char b[])
    { 
        if(strlen(b) > SZ -1)
        {
            for(int j = 0; j < SZ - 1; j++)
            {
                stroka[j] = b[j];
            }
            stroka[SZ - 1] = '\0';
        }
        else
            String(b);
    }
};
 
void main()
{
    Pstring s1 = "It's very long string, which may be, yes, no, just larger then SZ = 80!!aaaaaaaaaadfgdfgdfgdfgdfgdgdfgd";
    s1.disp();
    Pstring s2 = "Eto norma!";
    s2.disp();
    system("pause");
}
Не могу понять почему не считывается короткая строка, помогите, пожалуйста.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru