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

Перегрузка операции - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Массив слов http://www.cyberforum.ru/cpp-beginners/thread404512.html
Доброго времени суток, уважаемые форумчане. Будьте любезны, подскажите как решить задачку. Задача. Для каждого слова заданного предложения указать, сколько раз оно встречается в предложении. Нужно выполнить через string. моя исходная строка "hello i world i am imba prog hello world world am am am." У меня не получается правильно заполнить нужными словами массив строк стринг....
C++ Работа с псевдографикой (задача) Вычислить значения функции f(x)=ln(x+5) на интервале ∈ x с шагом 1.0. Занести эти значения функции в массив Y. Построить на экране график изменения данной функции на заданном интервале с помощью символов ‘*’. На графике указать минимальное и максимальное значения по осям, как показано на рисунке. 25 * * * * * http://www.cyberforum.ru/cpp-beginners/thread404510.html
Составление программ вычисления суммы N>0 C++
Составить программу вычисления суммы вводимых с клавиатуры чисел. Условие окончания ввода – ввод числа 0.
C++ поделить массив напополам и отдельно сдвигать 1 и 2 часть этого массива
В этой проге у меня просто сдивает массив на n позиций вправо, (массив и сдвиг задаются с клавиатуры), а нужно поделить массив напополам и сдвигать 1 и 2 часть. #include "stdafx.h" #include<iostream.h> #include <math.h> int main() { double a; int i,k,n,m,g,p,z; cout<<"vedite razmer ";
C++ Двумерный массив записать в файл http://www.cyberforum.ru/cpp-beginners/thread404483.html
Всем привет! Возникла проблемка: как записать двумерный динамический массив в файл построчно с помощью fwrite? Делаю так (файл открыт для записи в бинарном режиме, чуть что) - и всё записывается, как надо: char mas; ... fwrite (&mas, sizeof (mas), 1, out); // 0<=j<m
C++ Может у кого есть метод Гомори на С++?? Если у вас есть метод Гомори на С++ или ссылки на рабочую программу, киньте пожалуйста!! подробнее

Показать сообщение отдельно
Evgen.O
0 / 0 / 0
Регистрация: 06.12.2011
Сообщений: 9
11.12.2011, 17:33     Перегрузка операции
Запрограммировать и протестировать заданную перегруженную операцию,
содержащуюся в классе, производном от заданного класса VECTOR.
V - объект, которому принадлежит метод (перегруженная операция),
L – локальный объект (определяется как копия V),
F – формальный объект, a – скаляр, A – массив, j=0,1,…,n-1
Пример. Скалярное произведение векторов:
V*a{V.xj = V.xj*(V. xj+a); возвращается V.}

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
#include <stdio.h>
#include <alloc.h>
#include <math.h>
#include <conio.h>
#include <iostream.h>
 struct VECTOR{int n; float*x;
 void nw(){x=new float[n];}
// default  constructor:
 VECTOR(){n=0;x=0;}
// constructor with 1 arg. :
 VECTOR(int fn){n=fn; nw();}
// constructor with 2 arg. :
 VECTOR(int n,float*x);
// copying  constructor:
 VECTOR(VECTOR&v);
// destructor:
~VECTOR(){if(x)delete[]x;}
//V=F {V.n=F.n;V.x[j]=F.x[j];return*this==V
//(we can write V1=V2=V3 due to VECTOR&)}:
 VECTOR&operator=(VECTOR&F);
//  V() {output V.x[0], V.x[1],... }:
 void operator()(FILE*f);
// V[j] {return V.x[j]
//(we can write V1[i]=V2[j]=V3[k] due to float&...)}:
 float&operator[](int j){return x[j];}
 }; // end of VECTOR body
  VECTOR::VECTOR(int fn,float*fx)
{n=fn; nw(); for(int j=0;j<n;++j)x[j]=fx[j];}
  VECTOR::VECTOR(VECTOR&F)
{n=F.n;nw();for(int j=0;j<n;++j)x[j]=F.x[j];}
  VECTOR&VECTOR::operator=(VECTOR&F)
{if(x)delete[]x; n=F.n;nw();
for(int j=0;j<n;++j)x[j]=F.x[j];return*this;}
  void VECTOR::operator()(FILE*f=stdout)
{for(int j=0;j<n;++j)fprintf(f,"% -7g",x[j]);}
// end of VECTOR
 
// independant function:
  float operator*(VECTOR&v1, VECTOR&v2)
{float a=0; for(int j=0;j<v1.n;++j)
a+=v1.x[j]*v2.x[j]; return a;}
struct DV:VECTOR{DV():VECTOR(){}DV(int fn):VECTOR(fn){}
DV(int n,float*x):VECTOR(n,x){};
DV(DV&v):VECTOR(v){}
DV operator%(float a);
}; // end of DV body
  DV DV::operator%(float a)
{DV L(*this);
for(int j=0;j<n;++j)L.x[j]=(int)x[j]%(int)a;return L;}
// end of DV
 
  void main()
{cout<<"\n\n mem0="<<coreleft()<<'\n';
 {int n=3; float y[3]={1,2,3};
{ DV dv(n,y),d(dv);
   cout<<"\n  dv(); ->"; dv();
  d=dv%2; cout<<"\n d=dv%2; d(); ->"; d();
 cout<<"\n mem="<<coreleft()<<'\n';
}
 }cout<<"\n mem="<<coreleft(); getch();
}
По программе вопросов нет.Программа перегружается.Вопрос заключается в создании блок-схемы, неясно как показать перегруженную операцию,содержащуюся в классе, производном от заданного класса VECTOR.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru