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

Зачем нужны конструктор и деструктор класса? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Замена символов в Мемо http://www.cyberforum.ru/cpp-beginners/thread52787.html
Надо написать программу которая при вводе в Мемо текста заменяла буквы на другие. А на Ц ,И на Ъ и т.д надо задать все 33 буквы рус алфавита,типа шифрование. Подскажите как осуществить.
C++ Вводится матрица... Вводится матрица А построчно. Выберите из матрицы А подматрицу В, заданной суммой элементов или сообщите, что такой подматрицы не существует. Реализовать ввод\вывод с консоли и из файла. Задачу сделал, но интересны варианты(от простейшего). http://www.cyberforum.ru/cpp-beginners/thread52786.html
Сумма цифр и количество цифр C++
Задача: Вводится два натуральных числа. Нужно написать функции для того, чтобы: (1) найти сумму цифр составляющих это число (545 = 14), и количество цифр в этом числе (5464 = 4), (2) сравнить суммы 1го и 2го числа и вывести ответ, сумма какого числа больше. С 1м условием справился, а вот как сделать 2е, не могу сообразить...подскажите #include <iostream.h> #include <windows.h> char...
Динамические списки C++
Всем привет. Подскажите пожалуста идеи. Дано стек, разработать функцию, которая формирует два новых стеки: первая содержит числа из исходного стека с нечетными номерами, а второе - с четными
C++ Найдите два слова с наилучшей рифмой и еще две задачи. http://www.cyberforum.ru/cpp-beginners/thread52765.html
Дан текст (набор слов). Найдите в нем два слова с наилучшей рифмой. Наилучшей будем считать рифму, когда у пары слов совпадает наибольшее число букв с конца. Формат входных данных Первая строчка входных данных содержит натуральное число n, 2<=n<=10000. Затем идет n различных строк, каждая из которых содержит одно слово (слова могут состоять из латинских и русских букв в кодировке KOI-8,...
C++ Отличие static от объявление переменных ДО функции main Может быть я не совсем точно выразился в заголовке. Интересует отличие объявление переменных ДО функции main и объявление через static. По моим ощущениям если объявлено через static, то переменная существует всегда(даже при выходе из блока где она использовалась). Но ведь если просто объявить переменные до функции main они также будут видны везде. Поясните в чем загвоздка. Заранее спасибо. ... подробнее

Показать сообщение отдельно
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
27.09.2009, 02:14     Зачем нужны конструктор и деструктор класса?
вот так скомпилировалось:
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
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
 
#include <cmath>
 
class X {
private:
    double *x;
    double *y;
    double *z;
public:
    X(double x1, double y1, double z1);
    ~X();
    friend void printX(X obj);
    friend void runX(X obj);
};
 
X::X(double x1=0, double y1=0, double z1=0){
    x = new double(x1);
    y = new double(y1);
    z = new double(z1);
}
 
X::~X(){
    delete x;
    delete y;
    delete z;
}
 
void printX(X obj){
    cout << *(obj.x) << '\t' << *(obj.y) << '\t' << *(obj.z) << endl;
}
 
void runX(X obj){
    double x,y,z,res;
    x = *(obj.x);
    y = *(obj.y);
    z = *(obj.z);
    res=(pow(y,x+1.0))/(pow(fabs(y-2.0),1.0/3.0+3.0))+(x+y/2.0)/(2.0*fabs(x+y))*pow(x+1.0,(-1.0/sin(z)));
    cout << res << endl;
}
 
 
int main( void ){
    double a, b, c;
    cout << "Enter three double values for X: ";
    cin >> a >> b >> c;
    X o(a,b,c);
    cout << "Print X values:" << endl;
    printX(o);
    cout << "Calculate X values:" << endl;
    runX(o);
    return 0;
}
но вылетает на функции. Там изначально какой-то блудняк со скобками был. Как смог, переделал, но видимо неправильно. Мелкомягкий дебагер говорит, что
Код
Unhandled exception at 0x7c9109f9 in class_x.exe: 0xC0000005: Access violation reading location 0x00080181.
а скомпилённая gcc в cygwin вот так
Код
$ ./class_x.exe
Enter three double values for X: 44.4 -2.5 11.1
Print X values:
44.4    -2.5    11.1
Calculate X values:
inf
      5 [sig] class_x 3436 _cygtls::handle_exceptions: Error while dumping state
 (probably corrupted stack)
Segmentation fault (core dumped)
ругается...
При чём в cmd консоли что-то сосчиталось всё-таки
Код
Enter three double values for X: 2.2 1.21 22.1
Print X values:
2.2     1.21    22.1
Calculate X values:
18388.1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru