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

Сохранение класса в файл и его чтение - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как выглядит изнутри динамическое выделение объекта через new? http://www.cyberforum.ru/cpp-beginners/thread810553.html
То есть на Си будет выглядеть так : struct T { int x, y; }; /* Эта процедура является отображением конструктора T::T(int,int) */ void T_constr (struct T *this, int _x, int _y) {
C++ new - это операция или все таки оператор? В большинстве интернет-источниках написано, (взять хоть википедию (да, я понимаю, что там много неправильной информации)). Но действительно, если вбить в поиск new c++ почти везде написано, что это оператор. Но ведь это операция?? Или я что то путаю? Или разницы нет? Помогите, я уж совсем запуталась. http://www.cyberforum.ru/cpp-beginners/thread810541.html
Указатель C++
Можете объяснить устройство работы ,мне казалось что если вызвать просто ptr то должен возвратиться адрес,а если * ptr ,то значение,здесь же совершенно все не так int main() { char *ptr="hello world"; cout<<ptr<<endl; cout<<*ptr; getch(); return 0; }
Строковые типы данных C++
Ввести с клавиатуры строку из 20-ти или меньшего числа символов и найти в строке сумму и количество всех цифр. Язык С++(дано: ввод в Edit1 и вывод в Edit2 и Edit3).
C++ Строковые типы данных (заменить все прописные (большие) буквы латинского алфавита строчными (маленькими)) http://www.cyberforum.ru/cpp-beginners/thread810534.html
Ввести с клавиатуры строку и заменить все прописные (большие) буквы латинского алфавита строчными (маленькими). Язык С++ (дано Edit1 и вывод в Edit2).
C++ Организовать обход в глубину Искал код, не смог найти подходящий. Цель следующая - первым обходом ищем все шарниры, а вторым нужно найти для каждого шарнира, на сколько компонент связности дробит граф этот шарнир и сколько в каждой компоненте останется вершин. Было бы вообще великолепно, если бы было возможно реализовать это одним обходом. Поделитесь, пожалуйста, кодом по этому вопросу, или идеями, если есть :) подробнее

Показать сообщение отдельно
MrGluck
Модератор
Эксперт CЭксперт С++
7210 / 4376 / 638
Регистрация: 29.11.2010
Сообщений: 11,887
17.03.2013, 04:12
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
#include <iostream>
#include <string>
 
class Human
{
    public:
        Human() : name_() {};
        Human(const std::string &name) : name_(name) {}
 
        const std::string & getName() const { return name_; }
        void setName (const std::string &name) { name_ = name; }
        void print() const { std::cout << "Name: " << name_ << std::endl; }
 
    protected:
        std::string name_;
};
 
// перегружаем поток вывода
std::ostream & operator<< (std::ostream &ost, const Human &h)
{
    ost << h.getName() << std::endl; // формируем поток
    return ost; // возвращаем поток
}
 
// перегружаем поток ввода
std::istream & operator>> (std::istream &ist, Human &h)
{
    std::string tmp;
    if (ist >> tmp) // считываем с потока, если удачно
        h.setName(tmp); // устанавливаем новое значение поля name
    return ist; // возвращаем поток
}
 
int main()
{
    Human h;
    std::cin >> h;
    std::cout << h;
    h.print();
    std::cout << "Good luck" << std::endl;
}
С файлами аналогично, только надо создать объекты ifstream/ofstream. В первом случае, проверить на успешность открытия файла (он попросту может не существовать).
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru