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

Чтение всего файла fstream - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Перевод многострочного текста с английского языка на азбуку Морзе http://www.cyberforum.ru/cpp-beginners/thread1168675.html
Выполнить перевод многострочного текста (char text) с английского языка на азбуку Морзе. Для перевода использовать следующую таблицу преобразования: A .- J .--- Q --.- Y -.-- B -... I .. R .-. Z --.. C -.-. K -.- S ... D -.. L .-.. T - E . M -- U ..- F ..-. N -. V ...- G --. O --- W .-- H .... P .--. X -..- Каждая буква отделяется друг от друга пробелом, а пробел заменяется...
C++ Составить программу так, чтобы массив Y заполнялся значениями функции Составить программу так, чтобы массив Y заполнялся значениями функции. F(x)=tg(x) - x a=0 b=pi/4 a и b- начало и конец отрезка m=10 -кол-во элементов http://www.cyberforum.ru/cpp-beginners/thread1168653.html
C++ Определит количество тех чисел, которые делятся на 7
Даны 100 целых чисел, принадлежащих интервалу . Определите количество тех из них, которые делятся на 7. Вариант задания: 843; 516; 610; 91; 13; 90; 766; 214; 189; 981; 629; 723; 510; 532; 751; 904; 939; 31; 683; 43; 144; 825; 506; 17; 90; 669; 242; 583; 917; 910; 502; 85; 115; 893; 837; 341; 827; 846; 798; 637; 543; 173; 937; 789; 875; 633; 334; 613; 373; 40; 542; 926; 60; 212; 641; 72; 76;...
C++ Консольное меню MVC
С моего последнего проектика прошло не так уж много времени, а я вновь здесь и уже с новыми исходниками:) Снова паттерны и каркас MVC, и снова я жду от вас комментариев:) Итак, мой новый проект является, грубо говоря, библиотекой для создания консольного меню. То есть, Вы, как пользователь, хотите создать к примеру маленькую игрушку в консольном приложении, и вам 100% понадобится Меню для...
C++ Как изменить размер динамического массива структур после того как был добавлен товар http://www.cyberforum.ru/cpp-beginners/thread1168633.html
Подскажите как мне изменить размер динамической массива структур после того как был добавлен товар , countProduct-это и есть размер массива структур. void addProduct(int countProduct, Product *product) { cout << setw(50) << "Добавлення товару" << endl; system("cls"); cout << "Номер склада" << endl; cin.ignore(3, '\n') >> setw(2) >> product.numberStore; cout << "Код продукта"...
C++ Подсчет в строке слов, состоящих только из цифр.(функция) 5. Подсчет в строке слов, состоящих только из цифр. подробнее

Показать сообщение отдельно
DrOffset
6460 / 3834 / 885
Регистрация: 30.01.2014
Сообщений: 6,629
07.05.2014, 17:53     Чтение всего файла fstream
Цитата Сообщение от OrmaJever Посмотреть сообщение
То есть родительские методы переносятся частично, да я смогу к обьекту HL::string применить родительский метод append, но с операторами и конструкторами такая вот беда. Я один считаю что это не правильно?
Родительские методы переносятся все (кроме конструкторов - думаю понятно почему, если не понятно, то стоит поразмышлять о том, что конструктор привязан к типу).
Оператор operator= переносится из базового класса. Но есть такая штука, как сокрытие методов. Поясню на более очевидном примере:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
 
class B
{
public:
    B & foo(char const *) { std::cout << "B::foo\n"; return *this; }
};
 
 
class A : public B
{
public:
    A & foo(int) { std::cout << "A::foo\n"; return *this; }
};
 
 
int main()
{
    A a;
 
    //a.foo("test"); // ошибка
    a.foo(1); // OK
}
Видишь, метод foo из базовго класса недоступен. Его скрыл метод foo из наследника.
Теперь вернемся к operator=. Дело в том, что в твоем наследнике HL::string уже есть operator=, это автогенерированный
C++
1
HL::string & operator=(HL::string const &)
вот он-то и скрыл оператор из базового string. В С++ есть стандартный способ сделать скрытую функцию видимой.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
namespace HL{ 
    class string : public std::string
    {
    public:
        using std::string::operator=;
 
        string &operator<<( const char );
        string &operator<<( const char * );
        string &operator<<( const string & );
 
        string toLower( void ) const;
        string toUpper( void ) const;
        string replace( const char *, const char * );
    };
Добавлено через 13 минут
Да, в С++11 появилась возможность наследовать и конструкторы. Точно так же, через using.
 
Текущее время: 05:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru