Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
kbv025
1 / 1 / 2
Регистрация: 03.04.2013
Сообщений: 42
1

Возврат копии структуры из другого класса

28.10.2016, 22:52. Просмотров 174. Ответов 3
Метки нет (Все метки)

Как можно копию структуры из одного класса передать в другой? (именно чтоб она изначально в private была)
Сам только до такой вариант осилил. Но так по каждому значению передавать не удобно.
Может как-то через указатель можно или ссылкой на принимающую структуру, чтоб целиком все сразу? Хотя как класс A будет знать о типе структуры из класса B.

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
54
55
56
57
#include <iostream>
#include <string>
 
using namespace std;
class A
{
private:
    struct TestA
    {
        string pos1;
        string pos2;
    };
 
    TestA StrucA;
public:
    A()
    {
        StrucA.pos1 = "ABC";
        StrucA.pos2 = "DCF";
    }
    public:
 
        void get_struct(string &S1, string &S2)
        {
            cout << "StrucA.pos1--> " << StrucA.pos1 << " StrucA.pos2--> "  << StrucA.pos2 << endl;
 
            S1 = StrucA.pos1;
            S2 = StrucA.pos2;
        }
 
};
 
class B
{
private:
public:
    struct TestB
    {
        string pos1;
        string pos2;
    }StrucB;
 
   void test(A &classA)
    {
        classA.get_struct(StrucB.pos1,StrucB.pos2);
        cout << "StrucB.pos1--> " << StrucB.pos1 << " StrucB.pos2--> " << StrucB.pos2 << endl;
    }
};
 
 
int main()
{
    A T1;
    B T2;
    T2.test(T1);
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2016, 22:52
Ответы с готовыми решениями:

возврат копии обьекта класса из метода
Привет всем. Есть класс ниже в нём operator+. Помогите компилятор выдаёт...

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

Возврат из функции другого адреса
Собственно сабж. Есть функция - поиска минимального элемента с помощью...

Возврат структуры из функции
Добрый день! Я только начинаю, и сразу стал путаться с массивами и...

Возврат структуры из функции
Задание на структуру: создается банковский счет с возможностью изменения его...

3
John999
223 / 106 / 79
Регистрация: 17.10.2016
Сообщений: 312
29.10.2016, 00:02 2
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
class A
{
public:
    struct TestA
    {
        string pos1;
        string pos2;
    };
private:
    TestA StrucA;
public:
    A()
    {
        StrucA.pos1 = "ABC";
        StrucA.pos2 = "DCF";
    }
public:
 
    TestA get_struct() const
    {
        return  StrucA;
    }
 
};
 
class B
{
 
public:
    void test(A &classA)
    {
        A::TestA st =   classA.get_struct();
        cout << "StrucB.pos1--> " << st.pos1 << " StrucB.pos2--> " << st.pos2 << endl;
    }
};
 
 
int main()
{
    A T1;
    B T2;
    T2.test(T1);
    return 0;
}
1
hoggy
Нарушитель
Эксперт С++
7087 / 3130 / 648
Регистрация: 15.11.2014
Сообщений: 7,209
Завершенные тесты: 1
29.10.2016, 00:32 3
Цитата Сообщение от kbv025 Посмотреть сообщение
именно чтоб она изначально в private была
http://rextester.com/GRKXM99317

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
#include <iostream>
#include <string>
 
using namespace std;
 
class A
{
    struct TestA
    {
        string pos1, pos2;
    };
 
    TestA StrucA;
public:
    A()
    {
        StrucA.pos1 = "ABC";
        StrucA.pos2 = "DCF";
    }
    const TestA& get_struct() const
    { 
        return StrucA; 
    }
};
 
class B
{
 
public:
    void test(const A& classA) const
    {
        const auto& st = classA.get_struct();
        cout << "StrucB.pos1--> " << st.pos1 << " StrucB.pos2--> " << st.pos2 << endl;
    }
};
 
 
int main()
{
    std::cout << "Hello, world!\n";
    
    A T1;
    B T2;
    T2.test(T1);
}
2
kbv025
1 / 1 / 2
Регистрация: 03.04.2013
Сообщений: 42
29.10.2016, 00:53  [ТС] 4
Благодарю.
Так, а если надо именно занести данные в родную структуру класса B, то только поэлементным копированием?

hoggy если можно поясни зачем в скобках const ?
C++
1
void test(const A& classA) const
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.10.2016, 00:53

Приём константных векторов класса, как аргументов в методе другого класса
Есть такой класс: class Order { private: int numberOrder; map...

Объявление объекта класса fstream в качестве статической компоненты другого класса
Доброго времени суток. Есть задание, в котором говорится &quot;...Перепишите...

Как получить private переменную класса, функцей членом другого класса
Игра змейка: Есть класс поле в котором содержится размеры поля: class...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru