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

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

Восстановить пароль Регистрация
 
Leeto
 Аватар для Leeto
7 / 7 / 0
Регистрация: 23.12.2011
Сообщений: 372
Записей в блоге: 1
08.05.2012, 15:52     как переделать функцию в классе, чтоб значение передавалось по ссылке #1
[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() передавала значение по ссылки. Как ее переделать помогите, пожалуйста.
Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.05.2012, 15:52     как переделать функцию в классе, чтоб значение передавалось по ссылке
Посмотрите здесь:

как передать в функцию двухмерный динамический массив по ссылке C++
как сделать чтоб экземпляр класса возвращал значение? C++
Как в main() создать указатель на функцию, которая находится в классе? C++
C++ В 2-умерном массиве найти адреса максимального числа использовав функцию matrix. Значение передать по ссылке
Как переделать через функцию?( C++
C++ Как переопределить функцию func2 в классе B
В классе инициализировать массив, в классе создать функцию вывода массива на экран C++
Подскажите, почему значению функции присваивается true? Что сделать чтобы передавалось значение? C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
08.05.2012, 16:32     как переделать функцию в классе, чтоб значение передавалось по ссылке #2
ну так передайте ей аргументы по ссылку через &. Только вопрос зачем?
Leeto
 Аватар для Leeto
7 / 7 / 0
Регистрация: 23.12.2011
Сообщений: 372
Записей в блоге: 1
08.05.2012, 16:39  [ТС]     как переделать функцию в классе, чтоб значение передавалось по ссылке #3
Цитата Сообщение от panicwassano Посмотреть сообщение
ну так передайте ей аргументы по ссылку через &. Только вопрос зачем?
Вопрос в том, что я в этом деле нуб и не знаю как это сделать... Компилятор ругается. Надо ли в хед файле что ниб менять ?
Yandex
Объявления
08.05.2012, 16:39     как переделать функцию в классе, чтоб значение передавалось по ссылке
Ответ Создать тему
Опции темы

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