Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
11 / 9 / 8
Регистрация: 08.05.2013
Сообщений: 140

В разных экземплярах класса одинаковые данные

12.04.2014, 14:36. Показов 1603. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Проблема в следующем - есть класс Векторы, создаю в главном классе 3 вектора и заношу в два из них некоторые значения, в третьем все значения нулевые. Как только вставляю/меняю данные в один вектор, эти же данные заносятся и в остальные, а надо что бы только в тот, который я указываю. Как сделать что бы каждый экземпляр был отдельно от остальных? Что я не так делаю при объявлении, или где еще?
Класс вектора:
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
class Vectors
    {
        static double x1, x2, y1, y2;
        static double[] vect;
        static double length;
 
        public Vectors()
        {
            x1 = x2 = y1 = y2 = 0;
            vect = new double[2];
            length = 0;
        }       
 
        public void SetVector(double xx1, double xx2, double yy1, double yy2)
        {
            x1 = xx1; x2 = xx2;
            y1 = yy1; y2 = yy2;
            vect[0] = x2 - x1;
            vect[1] = y2 - y1;
            length = Math.Sqrt(Math.Pow((x2 - x1), 2) + Math.Pow((y2 - y1), 2));
        }
 
        public double getLength()
        {
            return length;
        }
 
        public double[] getVector()
        {
            return vect;
        }        
    }
Основной класс:
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
public partial class Form1 : Form
    {
        static Vectors a;
        static Vectors b;
        static Vectors c;        
        static double x1, x2, y1, y2;
        static double alpha;
        static bool added = false;        
 
        public Form1()
        {
            InitializeComponent();
            a = new Vectors();
            b = new Vectors();
            c = new Vectors();
        }       
 
        private void AddClick(object sender, EventArgs e)
        {
            x1 = Convert.ToDouble(x1Value.Text);
            x2 = Convert.ToDouble(x2Value.Text);
            y1 = Convert.ToDouble(y1Value.Text);
            y2 = Convert.ToDouble(y2Value.Text);
            if (!added)
            {
                a.SetVector(x1, x2, y1, y2);//уже после этого в a, b и c одни и теже данные
                x1Value.Text = x2Value.Text = y1Value.Text = y2Value.Text = "";
                added = true;
            }
            else
            {
                b.SetVector(x1, x2, y1, y2);
                x1Value.Text = x2Value.Text = y1Value.Text = y2Value.Text = "";
                toolStrip1.Enabled = false;                
                CalculateSum();
            }            
        }
//...
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.04.2014, 14:36
Ответы с готовыми решениями:

Разное значение переменной класса, в разных экземплярах класса
Вот примерный код: class Test { private: static int countC; static int countD; void initWeight(){ double a; ...

Почему в разных экземплярах класса появляются общие элементы?
Здравствуйте. Занимаюсь написанием класса, который создает многомерные массивы. Класс еще не завершен. На этапе создания появилась...

О экземплярах класса
Приветствую. Есть класс Websocket .h/.cpp В websocket.cpp #include "websocket.h" ...

2
338 / 327 / 154
Регистрация: 29.10.2012
Сообщений: 949
12.04.2014, 16:04
Ключевое слово static уберите в классе Vectors, да и в основном коде тоже, если в нем конечно нет особой необходимости.
1
11 / 9 / 8
Регистрация: 08.05.2013
Сообщений: 140
12.04.2014, 16:23  [ТС]
Действительно, в классе Vectors убрал static и все стало нормально. Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.04.2014, 16:23
Помогаю со студенческими работами здесь

Как в разных экземплярах формы отобразить разные запросы?
Цель: по нажатии отдельных кнопок открываются разные формы "фрм_03_02_Студенты_Тбл_Группа_1" и...

Разнести данные и методы в два разных класса
Товарищи скорректируйте в какую сторону двигаться. Есть задача создать библиотеку из двух классов. Один содержит поля с характеристиками...

2-мерные массивы: Вызов конструктора портит данные в других экземплярах
Проблема: обнаружилось, что порой пропадают числа из существующих экземпляров класса. Числа (коллективно -- строками или колонками)...

Вбить в переменную данные за пределом класса и достать эти данные внутри класса
$bd =1; class cl { public function __construct() { print_r($bd); } } Как сделать так чтобы вбить в переменную...

Одинаковые переменные в разных .h
Доброго времени суток. Есть у меня 2 .h файла (назовем их firstHeder, secondHeder) которые содержат в себе по одной одинаковой функции и...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru