1 / 1 / 2
Регистрация: 03.04.2013
Сообщений: 48
1

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

28.10.2016, 22:52. Показов 575. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.10.2016, 22:52
Ответы с готовыми решениями:

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

Использование структуры другого класса
Есть очень много всяких *.cs. В одном из них я хотел хранить структуры и и статические переменные,...

Доступ к методу структуры из другого метода класса
Здравствуйте. У меня есть стуктура Point и класс Triangle, в поинте есть метод который считает...

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

3
229 / 112 / 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
Эксперт С++
8560 / 4134 / 910
Регистрация: 15.11.2014
Сообщений: 9,334
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
1 / 1 / 2
Регистрация: 03.04.2013
Сообщений: 48
29.10.2016, 00:53  [ТС] 4
Благодарю.
Так, а если надо именно занести данные в родную структуру класса B, то только поэлементным копированием?

hoggy если можно поясни зачем в скобках const ?
C++
1
void test(const A& classA) const
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.10.2016, 00:53

Как связать сигнал одного класса со слотом другого класса, содержащего указатель на объект этого класса?
Подскажите, пожалуйста, как связать сигнал одного класса со слотом другого класса, содержащего...

Как передать входящее значение одного метода класса на возврат в другой метод того же класса?
Я самый новейший новичок. Помогите.Как передать входящее значение (количество еды) метода feed...

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

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


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

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

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