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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ графический вывод бинарного дерева http://www.cyberforum.ru/cpp-beginners/thread561993.html
Имеется текст проги создающей и выводящей бинарное дерево, но вывод дерева происходит горизонтально. Как сделать вывод в нормальном "древесном виде"? //Ïðîãðàììà ôîðìèðóåò äåðåâî èç ìàññèâà öåëûõ ÷èñåë è âûâîäèò åãî íà ýêðàí //root - êîðåíü äåðåâà #include <iostream.h> #include <conio.h> struct Node{ int d; //Äàííûå ýëåìåíòà Node *left; //Ññûëêà íà ëåâîå...
C++ Cуществует более одного экземпляра перегруженная функция pow При написание программы про решение задачи, выдает ошибку связанную с функцией pow. Подскажите как ее исправить. #include<stdio.h> #include<math.h> int main() { float x, y, z, a, b; printf("enter x, a, b;\n"); scanf("%f%f%f" , &x, &a, &b); y= log (((x-3)+4) /(x*x+12)); float m= pow(y+5,1.0/3); z=(m+a) / (sin (b)+m); 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; //год выпуска автобуса char number; //маршрут автбуса }a; int addition(int i); //добавление данных
Дана последовательность чисел. Выяснить , сколько раз в ней встречается максимальное число. C++
Дана последовательность чисел. Выяснить , сколько раз в ней встречается максимальное число.
C++ Структура TRAIN(считывание из файла) http://www.cyberforum.ru/cpp-beginners/thread561948.html
Знаю что много тем на эту структуру TRAIN, но я не нашел именно эту программу.(помогите доработать эту программу) Нужно: В файле содержится информация о железнодорожном расписании (номер поезда, время прибытия на станция, время отправления название станции ). Разработать структуру поезд, соответствующую формата файла. Создать массив структур. Найти поезда проходящий через макс число станций. ...
C++ Массив: вставить число k вводимое с клавиатуры после первого отрицательного элемента двумерного массива нужно втавить число k вводимое с клавиатуры после первого отрицательного элемента двумерного массива.Учусть ситуацию если один отрицательный элемент или нет вообще отрицат элементов вот помогите испраить ошибки или дописать программу пожайлуста #include<iostream.h> #include<stdlib.h> #define n 10 main() {randomize(); int a,p,i,k,x; cout<<"enter massiv"<<endl; for (i=0;i<n;i++) подробнее

Показать сообщение отдельно
GeneMeister
1 / 1 / 0
Регистрация: 30.04.2012
Сообщений: 7
30.04.2012, 12:05     Приведение типов.
Доброго времени суток!

В общем, есть класс 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;
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru