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

Класс,почему не меняется переменная - C++

Восстановить пароль Регистрация
 
FoxFly
0 / 0 / 1
Регистрация: 30.04.2013
Сообщений: 17
15.05.2014, 02:57     Класс,почему не меняется переменная #1
не могу понять почиму не работает "a1[0]=y;"Помогите пожалуста.
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
//Complex.h
#include <iostream>
using namespace std;
class Complex{
private:
    double re,im;  
    friend class Array;
public:
    Complex (){re=0;im=0;};
    Complex ( double a,double b);
    friend Complex operator*(int a,const Complex& t);
    Complex operator+(const Complex& t);
    void print();
    Complex&  operator=(const Complex& t);
};
 
Complex::Complex ( double a,double b)
{
    re=a;
    im=b;
}
void Complex::print ()
    { 
      std::cout <<"("<<re<<";"<<im<<")";
 }
Complex operator*(int a,const Complex& t){
  return Complex (double(a)*t.re,double(a)*t.im);
}
Complex Complex::operator+(const Complex& t){
    return Complex (re+t.re,im+t.im);
}
Complex& Complex::operator=(const Complex& t){
    if(this != &t)
    {re=t.re;
    im=t.im;}
    return *this;
}
//Array.h
#include "Complex.h";
class Array{
private:
    int size;  
    Complex *mas;
public:
    Array(int z);
    Complex operator[](int i){ return mas[i];};
    void assign (const Array& b);
    void print();
    void operator= (const Array& b);
    friend Array operator-(const Array&b);
};
Array::Array(int z){
size=z;
mas=new Complex[size];
for (int i=0;i<size;i++){
 mas[i].re=0;
 mas[i].im=0;}
}
void Array::print(){
for (int i=0;i<size;i++)
 mas[i].print();
}
void Array::operator=(const Array& b){
for (int i=0;i<size;i++)
mas[i]=b.mas[i];
}
void Array::assign (const Array& b){
for (int i=0;i<size;i++)
mas[i]=b.mas[i];
}
Array operator-(const Array&b){
for (int i=0;i<b.size;i++)
    b.mas[i]=-1*b.mas[i];
    return b;
}
//*.cpp
#include "Array.h";
int main(){
Complex x, y(4.0, 8.1), z(5.2, 6.0);  
x=5*y+z; 
x.print();
Array  a1(10), a2(10); 
a1[0]=y;
a2=-(a1); 
a1.assign(a2); 
a1.print();
system("pause>>null");
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2014, 02:57     Класс,почему не меняется переменная
Посмотрите здесь:

C++ Почему при изменении размера окна не меняется цвет заполнения?
C++ Почему не меняется цвет текста?
Программа взаимодействует с классом исключительно через интерфейс. Однажды класс меняется и меняется его хидер. Надо ли перекомпилировать всю программ C++
Почему при применении оператора = меняется правый операнд? C++
C++ почему символ не меняется
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
RamonN
 Аватар для RamonN
32 / 32 / 11
Регистрация: 13.07.2011
Сообщений: 136
15.05.2014, 03:02     Класс,почему не меняется переменная #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
Complex operator[](int i){ return mas[i];}
Судя по реализации класса, операция с квадратными скобками только возвращает значение.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
15.05.2014, 03:11     Класс,почему не меняется переменная #3
C++
1
Complex& operator[](int i){ return mas[i];};
FoxFly
0 / 0 / 1
Регистрация: 30.04.2013
Сообщений: 17
15.05.2014, 07:37  [ТС]     Класс,почему не меняется переменная #4
спс)
Yandex
Объявления
15.05.2014, 07:37     Класс,почему не меняется переменная
Ответ Создать тему
Опции темы

Текущее время: 03:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru