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

Вопросы по реализации класса - C++

Восстановить пароль Регистрация
 
Andrell
Сообщений: n/a
14.12.2010, 11:05     Вопросы по реализации класса #1
Здравствуйте, у меня возникла задача оптимизировать, написанный мною класс векторов, то есть у меня для начала взята операция сложения, и используя цикл, с большим числом шагов мне надо будет протестировать, сначала операцию, сложения, в чем я прошу помочь, так это сделать так чтобы
v3=v1 (какой-то мной используемый оператор отвечающий за сложение) v2
работал так же
v3.x=v1.x+v2.x
v3.y=v1.y+v2.y
v3.z=v1.z+x2.z
main файл
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
#include "stdafx.h"
 
#include <iostream>
#include <windows.h>
#include <conio.h>
#include <cmath>
#include "vector_element.h"
#include <math.h>
#include <time.h>
 
//#include "vector_element.cpp"
using namespace std;
 
int main()
{
vector_element v1( 1,0,0);
    vector_element v2(-1,0,0),v3;
clock_t t1,t2,t3,t4,t5,t6;
//t1 = clock();
   /* for(int i=0;i<10000000;i++)
    {
 
        v3=v1+v2;
 
    }*/
    //t2 = clock(); 
    //cout<<"time"<<(t2-t1)<<endl;
    //v3=v1.plus(v2);
    //v3.write();*/
    t3=clock();
    for (int i=0;i<10000000;i++)
    {
        v3.x=v1.x+v2.x;
        v3.y=v1.y+v2.y;
        v3.z=v2.z+v1.z;
    }
    t4=clock();
    cout<<"time"<<t4-t3<<endl;
 
    t5=clock();
    for (int i=0;i<10000000;i++)
    {
       // v3=v1.plus(v2);
         //vector_element.Add(v1, v2, v3);
        //vector_element::Add(v1,v2,v3);
 
        // v3=v1.Add(v2);
        v3.Add(v1,v2,v3);
    }
    t6=clock();
    cout<<"time"<<t6-t5<<endl;
getchar();
    return 0;
}
vector_element.h
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
#pragma once
class vector_element
{
public:
    double x,y,z;
    vector_element(double x1=0, double y1=0, double z1=0) {x=x1,y=y1,z=z1;}
    
     vector_element plus(vector_element v2);
     
 
 static void Add(const vector_element &v1, const vector_element &v2 ,vector_element &v3);
static vector_element inline operator+(vector_element &res1, vector_element &res2)
  {
    //vector_element res;
    res.x = res.x + x;
    res.y = res.y + y;
 res.z = res.z + z;
    return res;
  }
        double module ();
    void write();
    void read();
 
};
и файл vector_element.cpp
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
 #include "StdAfx.h"
#include "Vector_element.h"
#include <math.h>
#include <iostream>
 
using namespace std;
double x,y,z;
vector_element vector_element::plus(vector_element v2)
{
    vector_element vec;
        vec.x=x+v2.x;
        vec.y=y+v2.y;
        vec.z=z+v2.z;
        return vec;
 
}
 
void vector_element::write()
{
    cout<<x<<", "<<y<<", "<<z<<", ";
}
void vector_element ::read()
{
    cin>>x>>y>>z;
}
 
 static void vector_element:: Add(const vector_element &v1, const vector_element &v2, vector_element &v3)
{  
    
  v3.x = v1.x + v2.x;
  v3.y=v1.y+v2.y;
  v3.z=v1.z+v2.z;
}
Заранее спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2010, 11:05     Вопросы по реализации класса
Посмотрите здесь:

код реализации класса вектор C++
Отделение интерфейса класса от реализации C++
Отделение интерфейса от реализации класса: компиляция кода реализации C++
C++ IDE с автосозданием и измененим реализации класса
C++ реализации класса «Дерево двоичного поиска»
C++ Ошибки в реализации класса Vector3D
C++ Отделение интерфейса класса от его реализации
Детали реализации конструктора класса C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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