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

Перегрузка контсруктора - C++

Восстановить пароль Регистрация
 
Zero1
1 / 1 / 0
Регистрация: 24.04.2012
Сообщений: 16
26.05.2012, 23:33     Перегрузка контсруктора #1
Перегрузить конструктор в проге. помогите плс вообще не знаю как

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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include <iostream>
#include <math.h>
#include <conio.h>
#include <iomanip>
using namespace std;
struct koord{double x,y,z;};
class vektors{
    double x1,y1,z1,x2,y2,z2;
public:  vektors(double x1,double y1,double z1,double x2,double y2,double z2);
        ~vektors(); void sl(double x1, double y1, double z1, double x2,double y2,double z2);
        void vich(double x1, double y1, double z1, double x2,double y2,double z2);
        void proiz(double x1, double y1, double z1, double x2,double y2,double z2);
        void dlin(double x1, double y1, double z1, double x2,double y2,double z2);
        void cosin(double x1, double y1, double z1, double x2,double y2,double z2);
};
vektors::vektors(double x1,double y1,double z1,double x2,double y2,double z2)
{cout<<"В конструкторе\n";
x1=x1; y1=y1; z1=z1; x2=x2; y2=y2; z2=z2;};
vektors::~vektors()
{cout<<"В деструкторе";getch();};
void vektors::sl(double x1, double y1, double z1, double x2,double y2,double z2)
{double x, y, z;
x=x1+x2;
y=y1+y2;
z=z1+z2;
cout<<"Результат сложения: С("<<x<<","<<y<<","<<z<<")\n";};
void vektors::vich(double x1, double y1, double z1, double x2,double y2,double z2)
{double x,y,z;
x=x1-x2;
y=y1-y2;
z=z1-z2;
cout<<"Результат вычитания: С("<<x<<","<<y<<","<<z<<")\n";};
void vektors::proiz(double x1, double y1, double z1, double x2,double y2,double z2)
{double ps,pvx,pvy,pvz;
ps=x1*x2+y1*y2+z1*z2;
cout<<"Скалярное произведение="<<ps<<'\n';
pvx=y1*z2-z1*y2;
pvy=z1*x2-x1*z2;
pvz=x1*y2-y1*x2;
cout<<"Векторное произведение: С("<<pvx<<","<<pvy<<","<<pvz<<")\n";
};
void vektors::dlin(double x1, double y1, double z1, double x2,double y2,double z2)
{double dla,dlb;
dla=sqrt(pow(x1,2)+pow(y1,2)+pow(z1,2));
dlb=sqrt(pow(x2,2)+pow(y2,2)+pow(z2,2));
cout<<"Длина вектора А="<<setprecision(4)<<dla<<'\n';
cout<<"Длина вектора B="<<setprecision(4)<<dlb<<'\n';
};
void vektors::cosin(double x1, double y1, double z1, double x2,double y2,double z2)
{double c,u;
c=(x1*x2+y1*y2+z1*z2)/(sqrt(pow(x1,2)+pow(y2,2)+pow(z1,2)*sqrt(pow(x2,2)+pow(y2,2)+pow(z2,2))));
u=acos(c);
cout<<"Cos a="<<setprecision(5)<<c<<'\n';
};
int main()
{setlocale(LC_ALL, "Russian");
    koord v,v1;
    cout<<"Координаты A: \nx ";
    cin>>v.x;
    cout<<"y "; cin>>v.y;
    cout<<"z "; cin>>v.z;
cout<<"\nКоординаты B: \nx ";
cin>>v1.x;
cout<<"y ";
cin>>v1.y;
cout<<"z ";
cin>>v1.z;
cout<<'\n';
vektors perem(v.x,v.y,v.z,v1.x,v1.y,v1.z); 
perem.sl(v.x,v.y,v.z,v1.x,v1.y,v1.z);
perem.vich(v.x,v.y,v.z,v1.x,v1.y,v1.z);
perem.dlin(v.x,v.y,v.z,v1.x,v1.y,v1.z);
perem.cosin(v.x,v.y,v.z,v1.x,v1.y,v1.z);
perem.proiz(v.x,v.y,v.z,v1.x,v1.y,v1.z);
getch();
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2012, 23:33     Перегрузка контсруктора
Посмотрите здесь:

C++ C++ Перегрузка
C++ Перегрузка << и >>
Перегрузка в c++ C++
C++ перегрузка []
Перегрузка () C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
26.05.2012, 23:43     Перегрузка контсруктора #2
А в чём проблема? Он перегружается так же, как и функции\методы. Такой, например, в свой класс добавьте:
C++
1
vektors() : x1(), y1(), z1(), x2(), y2(), z2() {}
будет перегрузка.
Zero1
1 / 1 / 0
Регистрация: 24.04.2012
Сообщений: 16
26.05.2012, 23:54  [ТС]     Перегрузка контсруктора #3
а куда именно?

Добавлено через 1 минуту
неделю назад начал изучать С++ путаюсь сильно(
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
26.05.2012, 23:54     Перегрузка контсруктора #4
Цитата Сообщение от Zero1 Посмотреть сообщение
а куда именно?
В описание класса, куда же ещё)
C++
1
2
3
4
5
6
class vektors {
// ...
public:
   vektors() : x1(), y1(), z1(), x2(), y2(), z2() {}
// ...
};
Zero1
1 / 1 / 0
Регистрация: 24.04.2012
Сообщений: 16
27.05.2012, 00:02  [ТС]     Перегрузка контсруктора #5
вот я туплю ужасно)
спасибо большое!
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4922 / 2665 / 243
Регистрация: 29.11.2010
Сообщений: 7,420
27.05.2012, 03:31     Перегрузка контсруктора #6
Вас не смущает одинаковое название?
C++
1
2
3
vektors::vektors(double x1,double y1,double z1,double x2,double y2,double z2)
{cout<<"В конструкторе\n";
x1=x1; y1=y1; z1=z1; x2=x2; y2=y2; z2=z2;};
И вобще, вы описали аргументированный коструктор. Добавьте по-умолчанию и будет перегрузка.
C++
1
vektors::vektors(){}
Тем более при указании аргументированного, компилятор свой по-умолчанию не создает и надо описывать его явно.

Да и как вы в коде то разбираетесь? Мб есть смысл расставлять пробелы, оставлять пропуски между строк, делать отступы?

Добавлено через 4 минуты
Кстати, вам бы лучше в качестве параметров передавать структурную переменную или ссылку на неё. Это и смотрится эстетичней, и правильней с точки зрения объектов.
Yandex
Объявления
27.05.2012, 03:31     Перегрузка контсруктора
Ответ Создать тему
Опции темы

Текущее время: 17:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru