Schöck
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > .NET > Как перегрузить оператор для структуры Point3d? (.NET ACAD/BRICS)

Как перегрузить оператор для структуры Point3d? (.NET ACAD/BRICS)

Ответ
Поиск в этой теме
Непрочитано 02.04.2014, 16:07 #1
Как перегрузить оператор для структуры Point3d? (.NET ACAD/BRICS)
лузер
 
Изучение .NET ACAD2010/BRICS14
 
Москва
Регистрация: 26.01.2014
Сообщений: 30

Подскажите, возможно ли перегрузить оператор сложения, +, для структуры Point3d? И вообще, перегрузка для структур допускается? Может она производится как-то по-особенному, не как для типов? Попытался сделать вот так, не получается:
public static Point3d operator +(Point3d w0, Point3d w1)
{
double x, y, z;
x = w0.X + w1.X; y = w0.Y + w1.Y; z = w0.Z + w1.Z;
Point3d w = new Point3d(x, y, z);
return w;
}
Хочу иметь инструмент для простого выполнения операции p = p1 + p2, где p, p1, p2 - точки Point3d. Подскажите, кто сталкивался с такой задачей
Просмотров: 1669
 
Непрочитано 03.04.2014, 17:12
#2
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,273
Отправить сообщение для Александр Ривилис с помощью Skype™


А p = p1 + p2.GetAsVector(); не катит?

P.S.: Вообще-то точки не складывают. Складывают вектора и получают вектор или складывают точку и вектор и получают точку.
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 03.04.2014, 20:41
#3
лузер

Изучение .NET ACAD2010/BRICS14
 
Регистрация: 26.01.2014
Москва
Сообщений: 30


Кажется я понял как перегружать оператор. Его перегружают (прописывают метод operator) в том же классе, для которого этот оператор перегружается. То есть если мы используем встроенный, библиотечный класс, то для него априори нельзя ничего перегрузить. Сделал отдельный тестовый пример, и перегрузка нормально работает, конечно для моего, пользовательского класса.
Александр, да, метод GetAsVektor() катит. Только задолбает у каждого слагаемого писать эту фразу, если слагаемых много. Я уже сделал по-простому, по-деревенски (см. Рис1).
Re: P.S. Почему же, точки тоже приходится складывать. Например аппроксимация Кунса p=-2*(w0(1-k)(1-l)(1-m)+w1(1-k) l (1-m) ...)+a0(k)*(1-l)(1-m)+a1(k)*... (см. Рис2).
Миниатюры
Нажмите на изображение для увеличения
Название: Рис1.png
Просмотров: 40
Размер:	34.6 Кб
ID:	125809  Нажмите на изображение для увеличения
Название: Рис2.png
Просмотров: 39
Размер:	14.7 Кб
ID:	125810  
лузер вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > .NET > Как перегрузить оператор для структуры Point3d? (.NET ACAD/BRICS)

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск