Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.81
ELDQS
10 / 10 / 1
Регистрация: 07.04.2011
Сообщений: 561
Записей в блоге: 1
#1

Как присвоить значения из одного объекта другому объекту? - C++

13.07.2011, 10:54. Просмотров 2390. Ответов 10
Метки нет (Все метки)

у меня два объекта, мне надо присвоить значения из одного объекта другому объекту,
как это можно сделать
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
#include <iostream> 
using namespace std;
class move {
           double x;
           double y;
      public:
             move(double a = 0, double b = 0);
             void showmove() const;
             move & add (const move & m) const;
             void reset (double a = 0, double b = 0);};
      
move::move(double a, double b ){
                  cout << " Znachenyiu x bylo prisvoeno " <<a <<'\n' <<" Znachenyiu y bylo prisvoeno " << y << '\n';
                  x = a;
                  x = b;}
                  
void move::showmove() const{
                 cout << "x = " << x << '\n' << "y = " << y << '\n';}
 
move & move::add(const move & m) const{
     x = m.x;
     y+= m.y;
     move * ukaz = new move el(x, y);}
 
void move::reset(double a = 0, double b = 0){
                   x= a;
                   y = b;}
                   
int main (){
    move r (23, 75);
    r.showmove();
    move t(85, 92);
    t.showmove();
    r.add (t)
    system("pause");
    return 0;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.07.2011, 10:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как присвоить значения из одного объекта другому объекту? (C++):

Почему допустимо создавать объект по другому объекту, но нельзя присваивать уже созданный объект, другому созданному объекту? - C++
Это можно : Array a(10); a.set(0,5); Array b(a); А это нельзя : Array a(10); Array b(20); a = b;

Почему конструктор вызывается при присвоении объекта другому объекту - C++
оператор+ выполняется нормально, но когда уже переменная в sum, на след шаге она вызывает конструктор, ибо у меня в примере 9 выходит. А в...

Передача данных объекта одного класса , объекту другого - C++
Доброго времени суток. В общем, столкнулся с проблемой передачи данных от одного класса другому. Есть класс NewApp, создаю объект с...

выделить место для объекта с помощью new или создать указатель, объект и присвоить один другому. какая разница? - C++
кроме того что к объекту созданному с помощью new можно будет обращаться только через указатель.

Можно ли присвоить объекту основного типа значение объекта пользовательского типа? - C++
Правильно ли я понимаю, что SomeClass obj; int x = obj; или SomeClass obj; int x = 5 + obj;

Как передать параметры конструктора одного класса другому? - C++
Скажите пожалуйста, как это должно работать? Как передать параметры конструктора одного класса другому? #include &lt;iostream&gt; using...

10
volovzi
267 / 169 / 8
Регистрация: 14.03.2010
Сообщений: 501
13.07.2011, 11:12 #2
При помощи оператора присвоения.
0
nameless
Эксперт С++
334 / 298 / 14
Регистрация: 16.06.2009
Сообщений: 486
13.07.2011, 11:17 #3
Цитата Сообщение от ELDQS Посмотреть сообщение
move & move::add(const move & m) const{
x = m.x;
y+= m.y;
move * ukaz = new move el(x, y);}
Определение этого метода настораживает. Как бы в константном методе нельзя модифицировать, вызывающий этот метод объект.
1
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
13.07.2011, 11:25 #4
И еще вот это настораживает:
Цитата Сообщение от nameless Посмотреть сообщение
new move el(x, y);
1
nameless
Эксперт С++
334 / 298 / 14
Регистрация: 16.06.2009
Сообщений: 486
13.07.2011, 11:50 #5
ELDQS, вы этот код вообще компилировали?
0
ELDQS
10 / 10 / 1
Регистрация: 07.04.2011
Сообщений: 561
Записей в блоге: 1
13.07.2011, 15:53  [ТС] #6
как мне как мне зделать чтобы создать новый объект и чтобы он возврашал его
Цитата Сообщение от Net_Wanderer Посмотреть сообщение
еще вот это настораживает:
Сообщение от nameless
new move el(x, y);
а как мне зделать чтобы он создавал объект и возвращал его
0
Jupiter
Каратель
Эксперт С++
6561 / 3982 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
13.07.2011, 15:58 #7
ELDQS, а смысл? чем вас стандарное копирование полей неустраивает? память-то перераспределять не надо
C++
1
2
3
4
//пишите себе 
move a, b;
...
a = b;//и все
0
ELDQS
10 / 10 / 1
Регистрация: 07.04.2011
Сообщений: 561
Записей в блоге: 1
13.07.2011, 16:02  [ТС] #8
Цитата Сообщение от Maxwe11 Посмотреть сообщение
ELDQS, а смысл? чем вас стандарное копирование полей неустраивает? память-то перераспределять не надо
я вас не понял вообще я токо начал изучать и незнаю про что вы сказали, ыы это к какому вопросу ответили, насчет первого вопроса я разобрался
0
Jupiter
Каратель
Эксперт С++
6561 / 3982 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
13.07.2011, 16:10 #9
Цитата Сообщение от ELDQS Посмотреть сообщение
как мне как мне зделать чтобы создать новый объект и чтобы он возврашал его
конструктор создает новый объект
0
ELDQS
10 / 10 / 1
Регистрация: 07.04.2011
Сообщений: 561
Записей в блоге: 1
13.07.2011, 18:55  [ТС] #10
C++
1
2
3
4
5
move & move::add(move & m){
     x = m.x;
     y+= m.y;
     move *ukaz = new move (x, y);
     return *ukaz;}
а вот так правильно

Добавлено через 20 минут
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
#include <iostream> 
using namespace std;
class move {
           double x;
           double y;
      public:
             move(double a, double b);
             void showmove() const;
             move & add (move & m) ;
             void reset (double a , double b);};
      
move::move(double a, double b ){
                  cout << "Znachenyiu x bylo prisvoeno " <<a <<'\n' <<"Znachenyiu y bylo prisvoeno " << b << '\n';
                  x = a;
                  y = b;
                  showmove();}
                  
void move::showmove() const{
                 cout << "x = " << x << '\n' << "y = " << y << '\n';}
 
move & move::add(move & m){
     x = m.x;
     y+= m.y;
     move *ukaz = new move (x, y);
     return *ukaz;}
 
void move::reset(double a , double b){
                   x = a;
                   y = b;}
                   
int main (){
    move r (23, 75);
    move t(85, 92);
    move *kaz = r.add (t);
    kaz.showmove();
    system("pause");
    return 0;}
у меня на 34 строке ошибка в чем там ошибка
0
nameless
Эксперт С++
334 / 298 / 14
Регистрация: 16.06.2009
Сообщений: 486
13.07.2011, 18:59 #11
ELDQS, вы пытаетесь указателю присвоить ссылку, что ни есть хорошо:

C++
1
move kaz = r.add (t);
1
13.07.2011, 18:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.07.2011, 18:59
Привет! Вот еще темы с ответами:

Наследование: как передать массив одного класса другому классу? - C++
Доброе время суток, нужна помощь. Не могу сотворить чудо. Сомневаюсь уже во всём. Как передать массив одного класса другому классу? Дабы...

Двумерный массив указателей присвоить другому указателю - C++
char *tp = { &quot;bb&quot;, &quot;vv&quot;, &quot;zz&quot;, &quot;kk&quot;, &quot;&quot; }; char ***mp = tp; // вот здесь ошибка что нужно прописать чтоб...

Если значения переменных не равны, то присвоить им максимальное из значений, иначе присвоить им ноль - C++
Даны две переменные целого типа: A и B. Если их значения не равны, то присвоить каждой переменной максимальное из этих значений, а если...

Как присвоить значения структуре? - C++
У меня есть структура с картами (масть и достоинство карты): struct Card { char mast; char dostoinstvo; } Таких карт...


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

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

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