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

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

Войти
Регистрация
Восстановить пароль
 
BigLow
55 / 55 / 2
Регистрация: 07.07.2013
Сообщений: 345
#1

Что неправильно в этой задаче? - C++

26.08.2013, 10:43. Просмотров 533. Ответов 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
//---------------------------------------------------------------------------
#include <iostream>
using namespace std;
//---------------------------------------------------------------------------
class Test
{
  public:
    Test(int NewSize) { Size = NewSize; };
    ~Test() { };
    void SetSize(int NewSize) { Size = NewSize; };
    int GetSize() { return Size; };
  private:
    int Size;
};
//---------------------------------------------------------------------------
Test &TestObject()
{
  Test *pTestObject = new Test(5);
  int Size = pTestObject->GetSize();
  cout << Size;
  return *pTestObject;
}
//---------------------------------------------------------------------------
int main()
{
  Test &rTestObject = TestObject();
  int Size = rTestObject.GetSize();
  cout << Size << endl;
 
  Test *pTestObject = &rTestObject;
  delete pTestObject;
 
  system("pause");
  return 0;
}
//---------------------------------------------------------------------------
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.08.2013, 10:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Что неправильно в этой задаче? (C++):

В этой задаче требуется проверить, если ли в числе N две цифры 6? - C++
В этой задаче требуется проверить, если ли в числе N две цифры 6? Формат входных данных Дано целое число N (0 ≤ N ≤ 100 000 000). ...

Проверьте задачку по циклам, неправильно работает. [думаю что неправильно] - C++
Спасибо что решили зайти. Задание выгладит так: http://*******/PW95p А результат выплнения: http://*******/KwhuS #include...

Нужна формула к этой задаче или кто сможет объяснить как решать эту задачу? - C++
Есть два сосуда А и В. В сосуде А содержится 1 л молока, а в сосуде В - 1 л чая. Пользователь вводит емкость стакана (в миллилитрах, не...

В этой части кода происходит объявление функций? Что такое void? Что в скобках? - C++
В этой части кода происходит объявление функций? Что такое void? Что в скобках? void get(float **mas, int N, int M); void...

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

Объясните что означает '0' и '\0' и S[128] в задаче. - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;cmath&gt; #include&lt;stdio.h&gt; void F(long a, char *s) { int i, j, k, count =...

14
salam
171 / 152 / 16
Регистрация: 10.07.2012
Сообщений: 750
26.08.2013, 10:52 #2
как минимум, поле Size не инициализировано.

Добавлено через 59 секунд
Цитата Сообщение от BigLow Посмотреть сообщение
Test *pTestObject = &rTestObject;
* delete pTestObject;
да и вот эта конструкция подозрительна весьма...
1
Jupiter
Каратель
Эксперт С++
6559 / 3980 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
26.08.2013, 10:56 #3
Цитата Сообщение от salam Посмотреть сообщение
как минимум, поле Size не инициализировано.
Цитата Сообщение от BigLow Посмотреть сообщение
C++
1
Test(int NewSize) { Size = NewSize; };
Цитата Сообщение от salam Посмотреть сообщение
да и вот эта конструкция подозрительна весьма...
все тут впорядке
1
0x10
26.08.2013, 10:58
  #4

Не по теме:

В данном случае возвращать ссылку на объект, память под который выделена в куче - плохая идея... Потому что приходится шаманить со взятием адреса и удалением в неочевидном контексте.

1
BigLow
55 / 55 / 2
Регистрация: 07.07.2013
Сообщений: 345
26.08.2013, 11:12  [ТС] #5
Ну все таки, что здесь не так? )
Программа компилируется без предупреждений и ошибок
0
Croessmah
Ушел
Эксперт CЭксперт С++
13553 / 7704 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 1
26.08.2013, 11:14 #6
Цитата Сообщение от BigLow Посмотреть сообщение
Нужно найти в ней ошибку.
И что за ошибка? Что вообще должна делать программа?
0
SatanaXIII
Супер-модератор
Эксперт С++
5619 / 2654 / 247
Регистрация: 01.11.2011
Сообщений: 6,553
Завершенные тесты: 1
26.08.2013, 11:14 #7
Цитата Сообщение от BigLow Посмотреть сообщение
Ну все таки, что здесь не так? )
А почему такая уверенность, что здесь что-то должно быть не так? Опишите задание - где конкретно искать, или приведите ссылку на пост, откуда вы его взяли.
1
Croessmah
Ушел
Эксперт CЭксперт С++
13553 / 7704 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 1
26.08.2013, 11:16 #8
Как минимум после delete у Вас останется "висячая ссылка" rTestObject
1
BigLow
55 / 55 / 2
Регистрация: 07.07.2013
Сообщений: 345
26.08.2013, 12:11  [ТС] #9
вот ссылка Задачи для тренировки и лучшего понимания

Добавлено через 55 минут
Цитата Сообщение от Croessmah Посмотреть сообщение
Как минимум после delete у Вас останется "висячая ссылка" rTestObject
с висячей ссылкой понятно.

А может ли случится так, что при следующем динамическом выделении, память будет выделена в том месте, где расположена эта ссылка?
0
Jupiter
Каратель
Эксперт С++
6559 / 3980 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
26.08.2013, 12:13 #10
Цитата Сообщение от BigLow Посмотреть сообщение
А может ли случится так, что при следующем динамическом выделении, память будет выделена в том месте, где расположена эта ссылка?
может
1
zer0mail
2374 / 2004 / 199
Регистрация: 03.07.2012
Сообщений: 7,197
Записей в блоге: 1
26.08.2013, 12:17 #11
Ссылка повиснет, size дважды выведется (т.е. 55 вместо 5), остальное не по глазам
1
BigLow
55 / 55 / 2
Регистрация: 07.07.2013
Сообщений: 345
26.08.2013, 12:23  [ТС] #12
всем спасибо

вот так смотришь и вроде все хорошо в программе. и компилируется без предупреждений и ошибок и работает правильно, А оказывается вон что!
0
Croessmah
Ушел
Эксперт CЭксперт С++
13553 / 7704 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 1
26.08.2013, 12:24 #13
Цитата Сообщение от BigLow Посмотреть сообщение
Автор вопроса так и не выложил правильный ответ
Потому что на него ответили в теме
0
BigLow
55 / 55 / 2
Регистрация: 07.07.2013
Сообщений: 345
26.08.2013, 12:26  [ТС] #14
Цитата Сообщение от Croessmah Посмотреть сообщение
Потому что на него ответили в теме
где ответили? я так и не нашел правильный ответ автора
дайте ссылку на ответ
0
Croessmah
Ушел
Эксперт CЭксперт С++
13553 / 7704 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 1
26.08.2013, 12:30 #15
Задачи для тренировки и лучшего понимания
1
26.08.2013, 12:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.08.2013, 12:30
Привет! Вот еще темы с ответами:

Ошибка в задаче не выводит на экран кое что - C++
Задача с классами, надо чтоб было 5 функций, они есть вот. А компилятор выводит только сокращение дробей, а надо чтоб и наибольший...

что делаю неправильно? - C++
#include &lt;iostream&gt; using namespace std; int main() { int urok=45; int per1=5; int per2=15;

что неправильно в дереве? - C++
Вообщем нужно дерево сделать бинарное, в которое элементы добавляются и выводятся на экран..элементы типа int и вот написал так как давал...

Что я неправильно сделал? - C++
Помогите пожалуйста в чем проблема с моим кодом? // C++ Instructions // Permutation of bytes #include &lt;iostream&gt; using...


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

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

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