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

Вывод текста посредством элемент-функций класса - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Error: 'move' is not a member of 'std' http://www.cyberforum.ru/cpp-beginners/thread1501259.html
error: 'move' is not a member of 'std' Как бороться с этой гогой?
C++ Кто читал книгу Харбисона и Стила по чистому Си? В данный момент дочитываю эту чудесную книгу по чистому Си, в ней очень детально описывается сам язык, что помогает понять как Си, так и Си++ на более низком уровне. Например, в книге расписываются такие мелочи как то, что в традиционном (K&R) Си операция -= распознавалась как последовательность двух лексем - и =, а в Standart C и в C++ данная лексема являлась монолитной, или то, что очень... http://www.cyberforum.ru/cpp-beginners/thread1501256.html
C++ Как использовать Winerror.h ?
Здравствуйте. Работаю с функцией SHFileOperation. Описание гласит не использовать GetLastError() (FormatMessage к которой почему то выдает мне: No error message has been recorded. ), а использовать Winerror.h. Как получать ошибки из определенного файла?
Ошибка Cannot convert std::string to void* C++
Не могу сконвертировать строку в void*: std::string str; (void*)str; Вернее invalid cast from type std::string to type void* А когда пишу (void*)"K:\1.bmp"; работает
C++ Считывание ЛЮБЫХ символов из файла http://www.cyberforum.ru/cpp-beginners/thread1501192.html
Дорого времени суток! Проблема заключается в следующем: Есть криптоалгоритм который шифротекст вставляет в txt файл. После этот файл используется для дешифрования. В файле находятся символы кодировки win1251, при считывании некоторых служебных символов, например символа конца файла (хотя файл не считанным до конца), происходит завершение считывания (что в принципе логично по условию, но не...
C++ Транспонировать матрицу с постоянными затратами на дополнительную память Доброго времени суток! Меня интересует можно ли транспонировать матрицу с O(1) затратой на дополнительную память? Допустим дан двумерный вектор. Просто транспонировать за O(max^{2}(n,m)) памяти тривиально. Так же если дана квадратная матрица транспонировать ее за O(1) доп памяти весьма легко. Проблема возникает если матрица произвольных nxm размеров. Тут я придумал способ, затраты памяти на... подробнее

Показать сообщение отдельно
No1imit
2 / 2 / 0
Регистрация: 19.04.2015
Сообщений: 65

Вывод текста посредством элемент-функций класса - C++

19.07.2015, 12:23. Просмотров 180. Ответов 7
Метки (Все метки)

Не могу понять, почему в одном случае текст выводится, а в другом нет. Есть определение элемент-функций:
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
// конструктор инициализирует courseName переданной строкой
    GradeBook::GradeBook(string name)
    {
        setCourseName(name); // инициализировать вызовом set-функции
    } // конец конструктора GradeBook
 
    // функция, устанавливающая название курса
    // гарантирует, что название курса содержит не более 25 символов
    void GradeBook::setCourseName(string name)
    {
        if (name.length() <= 25) // если не более 25 символов
            courseName = name; // сохранить название курса в объекте
 
        if (name.length() > 25) // если в названии больше 25 символов
        {
            // записать в courseName первые 25 символов параметра name
            courseName = name.substr(0, 25); // начать с 0, длина 25
 
            cout << "Name \"" << name << "\" exceeds maximum length.\n"
                << "Limiting courseName to first 25 characters.\n" << endl;
        }
    }
 
    // функция, получающая название курса
    string GradeBook::getCourseName()
    {
        return courseName; // возвратить courseName объекта
    } // конец функции getCourseName
 
    // функция, выводящая сообщение-приветствие
    void GradeBook::displayMessage()
    {
        cout << "Welcome to the Grade Book for\n" << getCourseName() << "!" << endl;
    }
Функция main
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int main()
{
    // создать два объекта GradeBook
    // исходное имя курса для gradeBook1 слишком длинное
    GradeBook gradeBook1("CS101 Introduction to Programming in C++");
    GradeBook gradeBook2("CS102 Data Structures");
 
    // вывести courseName каждого GradeBook
    cout << "gradeBook1's initial course name is: " << gradeBook1.getCourseName()
        << "\ngradeBook2's initial course name is: " << gradeBook2.getCourseName() << endl;
 
    // модифицировать courseName for gradeBook1 (корректной строкой)
    gradeBook1.setCourseName("CS101 C++ Programming");
 
    // вывести courseName каждого GradeBook
    cout << "\ngradeBook1's course name is: " << gradeBook1.getCourseName()
        << "\ngradeBook2's course name is: " << gradeBook2.getCourseName() << endl;
    
    system("pause");
}
Не могу понять, к примеру, чтобы вывести "Welcome to the GradeBook for .." нужно вызвать эту элемент функцию:
C++
1
gradeBook1.displayMessage();
Но это почему выводится?
C++
1
2
cout << "Name \"" << name << "\" exceeds maximum length.\n"
                << "Limiting courseName to first 25 characters.\n" << endl;
Условие выполнено, но почему сразу в начале программы идет вывод этого текста?
Я чуть-чуть потерялся походу в этом всём
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru