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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Leeto
7 / 7 / 0
Регистрация: 23.12.2011
Сообщений: 372
Записей в блоге: 1
#1

как переделать функцию в классе, чтоб значение передавалось по ссылке - C++

08.05.2012, 15:52. Просмотров 310. Ответов 2
Метки нет (Все метки)

[CPP]
// Point.hpp
//


#ifndef Point_HPP
#define Point_HPP

#include <iostream>
#include <sstream>
#include <cmath>

using namespace std;

class Point
{
private:
double x; // X coordinate
double y; // Y coordinate

public:
// Constructors
Point(); // Default constructor
Point(double xval, double yval); // Initialize with x and y value

~Point();

// Accessing functions

double getX() const ; // The x-coordinate
void setX(double newX);
double getY() const; // The y-coordinate
void setY(double newY);
double ToString(double x, double y);
double DistanceOrigin(double x, double y);
double Distance(double x, double y);
};



#endif

[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
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
// Testpoint.cpp
//
 
 
#include "Point.hpp"
//#include "Linesegment.hpp"
 
#include <string>
#include <iostream>
#include <string>
#include <sstream>
 
using namespace std;
 
Point::Point() : x(0), y(0) // Colon syntax!!!!!!!!!!!!!!!!!
{// Default constructor
//  x = y =0.0;
}
 
Point::Point(double newx, double newy) : x(newx), y(newy)
{// Initialize using newx and newy
    
//  x = newx;
//  y = newy;
}
Point::~Point()
{// Des...
    
    cout << "bye my point..\n";
}
 
double Point::getX() const
{
    return x;
}
 
void Point::setX(double newX)
{ 
    x = newX;
}
 
 
double Point::getY()  const
{
    return y;
}
 
void Point::setY(double newY)
{ 
    y = newY;
} 
 
 
void print(const Point& pt)
{
    cout << "(" << pt.getX() << "," << pt.getY() << ")" << endl;    
}
 
 
double Point::ToString (double x, double y)
{
    ostringstream os;
    os << "Point (" << x << ", " << y << ")";
    cout << os.str() << '\n';
    return x,y;
}
 
 
double DistanceOrigin(double x, double y)
{
    double DistanceO;
    DistanceO = sqrt (x*x + y*y);
    return DistanceO;
}
 
 
    double Distance(double x1, double y1, double x2, double y2)
    {
    double Distance, Distance_sqr;
 
    Distance_sqr = x1*x1-2*x2*x1+x2*x2 + y1*y1-2*y2*y1+y2*y2; 
     
    Distance = sqrt(Distance_sqr);
    return Distance;
 
    }
 
 
 
    
int main()
 
{
    double a1, b1,a2,b2;
    cout << "Please enter point coordinates x and y of point 1  :\n";
    cin >> a1 >> b1; // input x and y coordinates value by user
 
 
    cout << "Please enter point coordinates x and y of point 2  :\n";
    cin >> a2 >> b2; // input x and y coordinates value by user
 
    // Create a point
 
    Point p1 (0,0); // creating object with inicial coordinates
    Point p2 (0,0);
    print(p1); // print for checking 
    print(p2);
 
    p1.setX(a1); // setting the point coordinates x into user value 
    p1.setY(b1); // setting the point coordinates y into user value 
 
    p2.setX(a2); // setting the point coordinates x into user value 
    p2.setY(b2); // setting the point coordinates y into user value 
    
 
    
    cout << "(" << p1.getX() << "," << p1.getY() << ")" << endl;
    cout << "(" << p2.getX() << "," << p2.getY() << ")" << endl;
    
 
    print(p1); // printing the point coordinates using print() function
 
    p1.ToString(p1.getX(),p1.getY()); // printing the point coordinates using ToString() function
    p2.ToString(p2.getX(),p2.getY());
 
    cout <<" Printing the point coordinates using the get functions of point1: " << p1.getX() <<" , "<< p1.getY()<<" " << endl;
 
    cout <<" Printing the point coordinates using the get functions of point2: " << p2.getX() <<" , "<< p2.getY()<<" " << endl;
 
    
    cout << "distanceO: " << DistanceOrigin(p1.getX(),p1.getY());
    cout << endl;
    cout << "distance between two points: " << Distance(p1.getX(),p1.getY(),p2.getX(),p2.getY()); 
    // а просто 2 точки
    cout << endl;
    system ("pause");
    return 0;
 
    
 
}
Хочется чтобы функция Distance() передавала значение по ссылки. Как ее переделать помогите, пожалуйста.
Заранее спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.05.2012, 15:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос как переделать функцию в классе, чтоб значение передавалось по ссылке (C++):

Подскажите, почему значению функции присваивается true? Что сделать чтобы передавалось значение? - C++
#include&lt;iostream&gt; #include&lt;math.h&gt; using namespace std; template&lt;typename T&gt; T f1(T a, T b) { if (a == 0){ cout &lt;&lt; &quot;no...

В 2-умерном массиве найти адреса максимального числа использовав функцию matrix. Значение передать по ссылке - C++
В 2-умерном массиве найти адреса максимального числа использовав функцию matrix. Значение передать по ссылке. Помогите плз, не могу...

В классе инициализировать массив, в классе создать функцию вывода массива на экран - C++
Прошу помоши с выводом данных, которые содержаться в массиве, на экраy: Задача: В классе инициализировать массив, в классе создать...

Как переопределить функцию func2 в классе B - C++
class A { A() {} и тд. public: functions.................... virtual void func1() = 0; class littleClass { ...

как передать в функцию двухмерный динамический массив по ссылке - C++
как передать в функцию двухмерный динамический массив по ссылке?

Как переопределить перегруженную функцию в производном классе? - C++
Как переопределить перегруженную функцию в производном классе? #include &lt;iostream&gt; class Number { public: virtual Number*...

2
panicwassano
592 / 560 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
08.05.2012, 16:32 #2
ну так передайте ей аргументы по ссылку через &. Только вопрос зачем?
1
Leeto
7 / 7 / 0
Регистрация: 23.12.2011
Сообщений: 372
Записей в блоге: 1
08.05.2012, 16:39  [ТС] #3
Цитата Сообщение от panicwassano Посмотреть сообщение
ну так передайте ей аргументы по ссылку через &. Только вопрос зачем?
Вопрос в том, что я в этом деле нуб и не знаю как это сделать... Компилятор ругается. Надо ли в хед файле что ниб менять ?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.05.2012, 16:39
Привет! Вот еще темы с ответами:

Как лучше передавать аргумент в функцию - по ссылке или по указателю? - C++
Предположим, что нам нужно в функцию передать значение переменной чтобы по окончанию работы функции значение переменной изменилось. Меня...

Как передать целочисленный параметр в функцию по ссылке при рекурсивном вызове? - C++
void consonant_count(trie*root,trie*parent,int amount_of_consonant,bool found,int *c) { ...

Как в main() создать указатель на функцию, которая находится в классе? - C++
В этом примере как определить указатель на функцию F()? class A { public: bool F(int &amp;a, int &amp;b) { return a&lt;b; } }; int...

Как переделать через функцию?( - C++
#include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;string&gt; /*Составить и проверить функцию, которая переставляет цифры заданного целого...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru