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

Переменная удаляется после присваивания - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как по требованию вызвать дескриптора объекта? http://www.cyberforum.ru/cpp-beginners/thread941322.html
Здрасти! Подскажите пожалуйста, как вызвать дескриптор объекта myCar до сообщения "End of programm"?: class Car { public: Car() {cout << "Constructor active\n";} ~Car() {cout << "Destructor active\n";} };
C++ Общая задача по теорверу Всем привет, начал изучать теор вер, и заодно так сказать, автоматизировать решение некоторых задач в общем виде. Есть задача, имеется W белых шаров и B черных, и количество ящиков N. Далее человек вытаскивает один шар из первого ящика и перекладывает в другой и так до N, необходимо узнать вероятность того, что человек достанет либо белый либо черный шар из последнего ящика. Алгоритм по сути... http://www.cyberforum.ru/cpp-beginners/thread941296.html
C++ работа с массивом указателей
#include <iostream> using namespace std; int main() { const int size=3; char *student={};
C++ Звуковой сигнал при выводе символа
Случайно наткнулся на такую вещь. Преобразую целое число(именно семерка) в символ и вывожу его при помощи cout. Программа компилится, работает, запускается. Но вместо вывода символа издает звук. Ведет себя так в visual studio 2010 express. Кто знает, что это? O_o Вот весь код программы: #include "stdafx.h" #include <iostream> using namespace std; void main() {
C++ Передача всего массива в функцию http://www.cyberforum.ru/cpp-beginners/thread941278.html
Начал изучать алгоритмы сортировки и поиска, решил сделать программу для тестирования работы сортировки и поиска на производительность, по времени (по нагрузке на ЦП и ОП пока что мозгов не хватает). И возникла проблема, вот я из своей программы выделил новую программу, убрав весь лишний код, оставил только то, где происходит косяк: #include <iostream> using std::cin; using std::cout;...
C++ Неясности в работе программы Доброго всем времени суток! :) Уже час пытаюсь понять почему во время исполнения этого кода (в borland, Cи), при вводе цифр ( через scanf) он сначала вводит как положено scanf, но отказывается прекратить работу и посчитать, пока не введешь туда ещё какое-то произвольное число. После чего считает все правильно, и второе число никак не затрагивается. Может кто сталкивался с таким? #include... подробнее

Показать сообщение отдельно
Керра
1275 / 443 / 45
Регистрация: 24.08.2011
Сообщений: 2,131

Переменная удаляется после присваивания - C++

21.08.2013, 16:16. Просмотров 324. Ответов 8
Метки (Все метки)

После строки 85 переменная c почему-то удаляется.
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
#include "stdafx.h"
#include <iostream>
#include <string.h>
#include <conio.h>
using namespace std;
 
class String
{
public:
    String(): itsLen(0), itsString('\0') { cout << "Constructor()\n"; _getch(); }
    String(const char * const);
    ~String();
 
    char & operator[] (int pos) { return itsString[pos]; }
    char operator[] (int pos) const { return itsString[pos]; }
    String & operator= (const String &);
    String operator+ (const String &);
 
    int GetLen() const { return itsLen; }
    const char * GetString() const { return itsString; }
 
private:
    char * itsString;
    int itsLen;
    String(int);
};
 
String::String(int len): itsLen(len)
{
    itsString = new char[len+1];
    for (int i = 0; i <= len; i++)
        itsString[i] = '\0';
    cout << "Construtor(int)\n";
    _getch();
};
 
String::String(const char * const cStr)
{
    itsLen = strlen(cStr);
    itsString = new char[itsLen+1];
    for (int i = 0; i < itsLen; i++)
        itsString[i] = cStr[i];
    itsString[itsLen] = '\0';
    cout << "Constructor(char *)\n";
    _getch();
};
 
String::~String()
{
    delete [] itsString;
    cout << "Destructor\n";
    _getch();
};
 
String & String::operator= (const String & rStr)
{
    delete [] itsString;
    itsLen = rStr.GetLen();
    itsString = new char[itsLen+1];
    for (int i = 0; i < itsLen; i++)
        itsString[i] = rStr[i];
    itsString[itsLen] = '\0';
    cout << "Operator =\n";
    _getch();
    return (*this);
};
 
String String::operator+ (const String & rStr)
{
    int resLen = itsLen + rStr.GetLen();
    String res(resLen);
    int i,j;
    for (i = 0; i < itsLen; i++)
        res[i] = itsString[i];
    for (i = itsLen, j = 0; j < rStr.GetLen(); i++, j++)
        res[i] = rStr[j];
    cout << "Operator +\n";
    _getch();
    return res;
};
 
int main()
{
    String a("a "), b("b "), c;
    c = a + b;
    cout << "Assignment is completed\n";
    _getch();
    cout << c.GetString() << endl;
    system("pause");
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru