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

const in OOP - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ библиотека sdl http://www.cyberforum.ru/cpp-beginners/thread601363.html
можете кто нибудь скинуть ссылку на icmplib или на файл sdl.obj вместе с sdl.lib Добавлено через 30 минут подключил sdl.lib - пишет 'C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\SDL.LIB' contains invalid OMF record, type 0x21 (possibly COFF) Добавлено через 2 часа 10 минут кто нибудь помогите пожалуйста
C++ ошибка в в заголовочном файле Array must have at least one element самое обидное что это не мой инклуд, и я не знаю как правильно исправить что ничего не повредить вот строка SDL_COMPILE_TIME_ASSERT(enum, sizeof(SDL_DUMMY_ENUM) == sizeof(int)); файл SDL_types.h /* SDL - Simple DirectMedia Layer Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga This library is free software; you can redistribute it and/or modify it under... http://www.cyberforum.ru/cpp-beginners/thread601355.html
C++ Математическая задача
Нужно срочно сдать. Помогите пожалуйста. В программе должны использоваться функции.
По данному натуральному n вычислите сумму 1+(1+2)+(1+2+3)+.+(1+2+.+n) C++
По данному натуральному n вычислите сумму 1+(1+2)+(1+2+3)+...+(1+2+...+n). я пытался решить, исправте если неправильно ( а оно неправильно) #include <iostream> #include <conio.h> using namespace std; int n,res,k=1; int main()
C++ Можно ли установить хук в самом приложении? http://www.cyberforum.ru/cpp-beginners/thread601312.html
Или только в длл? Добавлено через 12 минут И ещё такой вопрос: если установить хуки в DllMain почему при выходе из него хуки обрываются , но ведь длл по прежнему весит в процессе? то есть: BOOL APIENTRY DllMain(HINSTANCE hModule,DWORD ul_reason_for_call,LPVOID lpReserved) { switch(ul_reason_for_call) {
C++ Число простых чисел от 1 до N методом решета Сундарама Не врубаюсь как сделать. Проект С++, использующий динамическую библиотеку MSVCRT.dll вместо обычной MSVCRT90.dll (http://habrahabr.ru/post/87016/). Консольное приложение, считающее число простых чисел от 1 до N методом решета Сундарама (http://ru.wikipedia.org/wiki/Решето_Сундарама). подробнее

Показать сообщение отдельно
Leeto
 Аватар для Leeto
7 / 7 / 0
Регистрация: 23.12.2011
Сообщений: 372
Записей в блоге: 1
24.07.2012, 21:47  [ТС]     const in OOP
Объясните мне колдовство, пожалуйста, допустим есть банальный код
класс точка декларируем имплементируем...
Есть функция Distance( Point const &ObjPoint ) ;
сейчас имплементация ее такая что внутри функции изменяется объект что естественно const должен пресеч и он присекает выдавая ошибку
error C2662: 'Point::setX' : cannot convert 'this' pointer from 'const Point' to 'Point &'
но если поменять немного

Distance( Point const &ObjPoint ) -> Distance( Point& const ObjPoint )
то компелятор все нормально пропускает
point.hpp(30): warning C4227: anachronism used : qualifiers on reference are ignored
point.cpp(58): warning C4227: anachronism used : qualifiers on reference
вормингами правда но пропускает

Вопрос WFT ???

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
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
#ifndef Point_HPP // anti multiply including gates
#define Point_HPP
 
 
class Point
{
    private: // private declaration of data members 
    double x;   // X coordinate
    double y;   // Y coordinate
 
    public: // public declaration of data members (in given example haven't ) and member functions 
    //Declaration of Constructors 
    Point();                                    // Default constructor
    Point(double xval, double yval);            // Constructor 
    Point (const Point& ObjectOfClassPoint);    //COPY constructor
    ~Point(); // 
 
    // Declaration of  Accessors member functions
    void ToString() const;
    double getX() const ;                   
    double getY() const;    
 
    // Declaration of  Modificators member functions
    void setX(double newX); // The x-coordinate
    void setY(double newY); // The y-coordinate
 
 
    // Declaration of Calculators (additional functionality) member functions
    double DistanceOrigin() const;
    void   Distance( Point const  &ObjPoint ) ;
    
 
};
 
 
 
#endif // Point_HPP
 
 
#include "Point.hpp"
#include <iostream>
#include <sstream>
#include <cmath>
using namespace std;
 
 
 
            //----------- Implementation of Constructors -----------//
 
Point::Point() : x(0), y(0) { cout << "hi my default constructor\n\n\t";}                                   // Default constructor (implemented using colon syntax )
Point::Point(double newx, double newy) : x(newx), y(newy){cout << "hi my constructor\n\n\t";}       // Constructor 
Point::~Point() {cout << "bye my point..\n";}                   // Destructor 
 
Point::Point (const Point& ObjectOfClassPoint)                  // Copy constructor
        {
            cout << "this is COPY constructor\n\n\t "<<endl; 
            x = ObjectOfClassPoint.x;
            y = ObjectOfClassPoint.y;
        }
        
 
 
 
            //----------- Implementation of Modificators of x,y coordinates of an object -----------//
 
void Point::setX(double newX) {x = newX;}
void Point::setY(double newY) {y = newY;}
 
 
 
 
 
            //----------- Implementation of Accessors member functions -----------//
 
// Given functions should be const because we not willing modify contained variables when we call those fucntions in any case
double Point::getX()  const {return x;} 
double Point::getY()  const {return y;} 
 
void Point::ToString () const
    
    {// Function ToString should also be const also because of reason of mistaken modification of an object's value 
        ostringstream os; // std::stringstream object
        os << "\n\tPoint (" << x << ", " << y << ")"; // customization of output 
        cout << os.str() << '\n'; // str() function retrieve the string from the string buffer
    }
 
 
            //----------- Implementation of Calculators (additional functionality) member functions -----------//
 
double Point::DistanceOrigin() const
 
        {
            return std::sqrt(std::pow(x,2) + std::pow(y,2));
        }
 
 
void  Point::Distance( Point const  &ObjPt ) 
    
        {
            ObjPt.setX(1);
            cout << "value of x of object that is argument was changed "<< ObjPt.getX()  << "\n";
            ObjPt.ToString();
            cout << "distance is : " << std::sqrt(std::pow((x-ObjPt.x),2) + std::pow(y - ObjPt.y,2)); 
        }
 
    
#include "Point.hpp"
#include <iostream>
 
using namespace std;
 
 
 
 
 
 
int main()
{
    {
    double x, y ; 
 
    cout << "PURPOSE: Show two ways of creating object of given class\n1-way by using constructor\n2-way by using COPY constructor\n "; 
 
        cout << "\n\tPlease, enter, coordinates x and y for point 1  : \n";
        cout << "X1: ";
        cin >> x  ;
        cout << "Y1: ";
        cin >> y; // input x1 and y1 coordinates value by user
    Point p1 (x,y);
 
    cout << "\n\tPlease, enter, coordinates x and y for point 1  : \n";
        cout << "X2: ";
        cin >> x  ;
        cout << "Y2: ";
        cin >> y; // input x1 and y1 coordinates value by user
    Point p2 (x,y);
 
    p1.ToString(); // printing the point coordinates using ToString() function
    p2.ToString();
 
    cout << "\n\n\t ----Creating object using reference TEST ----" << "\n\n\t";
 
    cout << "Please enter point coordinates x and y of point 1  : \n";
        cout << "X3: ";
        cin >> x  ;
        cout << "Y3: ";
        cin >> y; // input x1 and y1 coordinates value by user
    Point p3 (x,y);
    
    Point *p4 = &p3; 
    
    p3.ToString(); // printing the point coordinates using ToString() function
    p4->ToString();
        
    //Point p5;
    //p5(p3);
    cout << "Distance  between second\nand third ( that calling by using pointer) points is : " ;
        p2.Distance(p3) ;
        cout << "\n\n\n";
    
    return 0;
 
}  
    // double bracket for main() function is needed for catching in console  message from destructor 
 
}
 
Текущее время: 06:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru