С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
1 / 1 / 1
Регистрация: 05.04.2017
Сообщений: 16
1

Как вызвать функцию-член правильно для класса Person

14.04.2017, 12:13. Показов 1704. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задача простая, ввести фамилию и имя и вывести их.

Подскажите, как правильно написать функцию вывода print().
Если один параметр сделать, объект вектор как *this, то у класса нету функции size(). Функция read() понятно, а эта...

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
#include <iostream>
#include <string>
#include <vector>
#include "Person.h"
using namespace std;
 
int main()
 
 
 
{
 
    vector<Person> data;
    Person data3;
 
    while (data3.read(cin))
        data.push_back(data3);
 
    
    .print() //как ее написать правильно
 
 
    system("pause");
    return 0;
}

=====Person.h=====
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
#include <string>
#include <vector>
 
struct Person
{
public:
    std::ostream &print(std::ostream&os, std::vector<Person>&item);
        std::istream &read(std::istream&is);
private:
    std::string name, adres;
 
 
};
 
 
std::ostream &Person::print(std::ostream&os, std::vector<Person>&item) 
{
    
    
    for (auto i = 0; i != item.size(); ++i)
        os << item[i].name << item[i].adres;
    return os;
};
std::istream &Person::read(std::istream&is) { is >> this->name >> this->adres; return is; };
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.04.2017, 12:13
Ответы с готовыми решениями:

Как создать указатель на функцию-член класса и вызвать его?
Подскажите как правильно сделать, а в дальнейшем вызвать указатель на функцию член класса:...

Как вызвать член класса по адресу?
В общем вопрос такой: допустим есть адрес класса, то получается по определенному смещению вызвать...

Как реализовать функцию-член, которую можно вызвать только один единственный раз?
Доброго времени суток. Моя проблема в том, что при создании экземпляра дочернего класса,...

Как вызвать виртуальную функцию из дочернего класса, если она определена и вызывается в конструкторе РОДИТЕЛЬСКОГО класса?
Ну то есть так: есть родительский и дочерний класс, в родительском определен виртуальная функция и...

3
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
14.04.2017, 12:41 2
Если ты хочешь весь вектор разом выводить, то функция должна быть или вне класса, или static.
Обычно определяют операцию >> для ostream, а вектор в цикле выводится.
0
1 / 1 / 1
Регистрация: 05.04.2017
Сообщений: 16
14.04.2017, 12:54  [ТС] 3
Если ты хочешь весь вектор разом выводить, то функция должна быть или вне класса, или static.
Обычно определяют операцию >> для ostream, а вектор в цикле выводится.
А как ее объявить и определить вне класса, функцию print() чтобы она выводила объект класса Person и чтобы она не являлась членом?
А что static значит здесь, я знаю что это переменные которые не изменяются с таким типом при многократном вызове функции....

Цитата Сообщение от nmcf Посмотреть сообщение
Если ты хочешь весь вектор разом выводить
Вы имеете ввиду, сам объект? А я вывожу переменные-члены, а если сам объект выводится будет под индексом[], то переменные члены будут выводится автоматич?
Цитата Сообщение от nmcf Посмотреть сообщение
Обычно определяют операцию >> для ostream, а вектор в цикле выводится.
Это перегрузку операторов нужно смотреть?
0
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
14.04.2017, 14:32 4
Цитата Сообщение от Vikings3 Посмотреть сообщение
Это перегрузку операторов нужно смотреть?
Да.
0
14.04.2017, 14:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.04.2017, 14:32
Помогаю со студенческими работами здесь

Как правильно вызвать функцию с указателем на другую функцию как параметр
Вот вариант: double f(double x) { ... } double k(double (*f)(double), double y) { ...

Как из обыной функции вызвать функции член класса?
Требуется установить таймер. При компиляции выдаётся ошибка. Как ее решить? void handlук(int...

Как правильно вызвать функцию?
Собственно вопрос ясен из заголовка, никак не пойму, как правильно сделать. Выдает ошибку in...

Как правильно вызвать функцию?
Добрый день. подскажите как исправить ошибку: TAsync * Async ; Async = new TAsync;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru