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

Приведение типов. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ графический вывод бинарного дерева http://www.cyberforum.ru/cpp-beginners/thread561993.html
Имеется текст проги создающей и выводящей бинарное дерево, но вывод дерева происходит горизонтально. Как сделать вывод в нормальном "древесном виде"? //Ïðîãðàììà ôîðìèðóåò äåðåâî èç ìàññèâà öåëûõ...
C++ Cуществует более одного экземпляра перегруженная функция pow При написание программы про решение задачи, выдает ошибку связанную с функцией pow. Подскажите как ее исправить. #include<stdio.h> #include<math.h> int main() { float x, y, z, a, b;... http://www.cyberforum.ru/cpp-beginners/thread561985.html
C++ Сортировка, не изменяя структуру
#include <conio.h> #include <string.h> #include <stdio.h> struct autopark{ //объявление структуры autopark char brand; //марка автобуса char date; //год выпуска автобуса...
Дана последовательность чисел. Выяснить , сколько раз в ней встречается максимальное число. C++
Дана последовательность чисел. Выяснить , сколько раз в ней встречается максимальное число.
C++ Структура TRAIN(считывание из файла) http://www.cyberforum.ru/cpp-beginners/thread561948.html
Знаю что много тем на эту структуру TRAIN, но я не нашел именно эту программу.(помогите доработать эту программу) Нужно: В файле содержится информация о железнодорожном расписании (номер поезда,...
C++ Массив: вставить число k вводимое с клавиатуры после первого отрицательного элемента двумерного массива нужно втавить число k вводимое с клавиатуры после первого отрицательного элемента двумерного массива.Учусть ситуацию если один отрицательный элемент или нет вообще отрицат элементов вот помогите... подробнее

Показать сообщение отдельно
GeneMeister
1 / 1 / 0
Регистрация: 30.04.2012
Сообщений: 7

Приведение типов. - C++

30.04.2012, 12:05. Просмотров 633. Ответов 9
Метки (Все метки)

Доброго времени суток!

В общем, есть класс Matrix(прямоугольные над полем вещ. чисел). Необходимо реализовать приведение типов Matrix -> double и double -> Matrix. Значит, как я пытаюсь это сделать:
C++
1
2
3
4
5
6
7
8
9
10
class Matrix{
private:
double** data;
//..
public:
//...
Matrix& operator =(double a);
Matrix(double a); // Значит, так привожу double к Matrix. Это вроде работает.
operator double(); // Matrix->double. Тоже работает, но пытается привести где ни поподя.
}
Реализация operator double():
C++
1
2
3
4
5
6
Matrix::operator double()
{
if(m!=1 || n!=1)//m и n количество строк и столбцов соответственно.
throw cantConv();
return data[0][0];
}
Проблема следующая:
Когда какая-либо функция возвращает значиние типа Matrix, почему-то срабатывает operator double(). Например:
C++
1
2
3
4
5
6
7
Matrix Matrix::operator + (Matrix& const A)
{
//...
Matrix result;
//...
return result;// Вот тут пытается привести и, что логично, вылетает исключение типа cantConv(т.к. размерность больше 1).
}
Буду благодарен за помощь.

Добавлено через 20 минут
Ах да, вызов operator+ происходит следующим образом:
C++
1
2
Matrix A(2,2), B(2,2), C;
C = A+B;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.