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

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

Войти
Регистрация
Восстановить пароль
 
 
thechicho
0 / 0 / 0
Регистрация: 15.03.2015
Сообщений: 15
Завершенные тесты: 1
#1

Перечислить все проблемы, которые вы видите в данном коде - C++

17.08.2016, 10:31. Просмотров 692. Ответов 27
Метки нет (Все метки)

Предложите ваши варианты решения заданий

1. Перечислите все проблемы, которые вы видите в данном коде:

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
class Foo
{
public:
    Foo(int j) { i=new int[j]; }
    ~Foo() { delete i; }
private:
    int* i;
};
 
class Bar: Foo
{
public:
    Bar(int j) { i=new char[j]; }
    ~Bar() { delete i; }
private:
    char* i;
};
 
 
void main()
{
    Foo* f=new Foo(100);
    Foo* b=new Bar(200);
    *f=*b;
    delete f;
    delete b;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.08.2016, 10:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перечислить все проблемы, которые вы видите в данном коде (C++):

Перечислить все слова заданного предложения, которые состоят из тех же букв что и первое - C++
Уважаемые знатоки кода! Помогите, пожалуйста, с программкой, по заданию: перечислить все слова заданного предложения, которые состоят...

В текстовом файле содержится некоторый текст. Выделить все числа, которые содержатся в данном тексте - C++
В текстовом файле содержится некоторый текст. Выделить все числа , которые содержатся в данном тексте. Заполнить другой файл этими числами....

Перечислить дни, на которые приходится пятница 13-го числа - C++
компилятор усиленно ругается на vector есть и другие мелкие ошибки.. не могу разобраться,объясните.. *Перечислить дни, на...

Перечислить слова, которые состоят из тех же букв - C++
Решите пожалуйста задачу: Перечислить все слова созданного предложения, которые состоят из тех же букв, что и первое слово предложения.

Используется ли в данном коде ООП? - C++
#include <iostream> #include <regex.h> using namespace std; #define PATTERN "^{0,3}.{0,3}.{0,3}.{0,3}$" #define STRING...

Что делает (->) в данном коде - C++
TInfo Info; TElem *Elem = new TElem; Elem->Info.Ball = Info.Ball; Не нашел информации в сети, что делает эта...

27
John Prick
823 / 756 / 152
Регистрация: 27.07.2012
Сообщений: 2,150
Завершенные тесты: 3
17.08.2016, 11:14 #2
Мой предыдущий ответ: Задания с++ с собеседования
0
Ferrari F1
580 / 518 / 101
Регистрация: 27.01.2015
Сообщений: 3,025
Записей в блоге: 1
Завершенные тесты: 1
17.08.2016, 11:40 #3
Виртуальный деструктор?

Добавлено через 7 минут
Происходит сокрытие имени i базового класса в производном
0
Kastaneda
Jesus loves me
Эксперт С++
4697 / 2901 / 238
Регистрация: 12.12.2009
Сообщений: 7,386
Записей в блоге: 2
Завершенные тесты: 1
17.08.2016, 11:44 #4
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
Происходит сокрытие имени i базового класса в производном
У каждого класса своя i, все нормально.

Плюс к сказанному советую заострить внимание на этой строке
C++
1
*f=*b;
0
Kastaneda
Jesus loves me
Эксперт С++
4697 / 2901 / 238
Регистрация: 12.12.2009
Сообщений: 7,386
Записей в блоге: 2
Завершенные тесты: 1
17.08.2016, 11:44 #5
ну и void main() уже 100500 раз перетирали.
0
Ferrari F1
580 / 518 / 101
Регистрация: 27.01.2015
Сообщений: 3,025
Записей в блоге: 1
Завершенные тесты: 1
17.08.2016, 11:44 #6
К-тор мона запейсать так
C++
1
Foo(int j):  i(new int[j]())   {     }
0
Kastaneda
Jesus loves me
Эксперт С++
4697 / 2901 / 238
Регистрация: 12.12.2009
Сообщений: 7,386
Записей в блоге: 2
Завершенные тесты: 1
17.08.2016, 11:45 #7
а, виртуальный деструктор то никто не упомянул.
0
Kastaneda
Jesus loves me
Эксперт С++
4697 / 2901 / 238
Регистрация: 12.12.2009
Сообщений: 7,386
Записей в блоге: 2
Завершенные тесты: 1
17.08.2016, 11:47 #8
thechicho, это тестовое задание от работодателя, как наши ответы помогут тебе устроится на работу?
1
Ferrari F1
580 / 518 / 101
Регистрация: 27.01.2015
Сообщений: 3,025
Записей в блоге: 1
Завершенные тесты: 1
17.08.2016, 11:48 #9
Kastaneda, класс бар содержит bar::i и foo::i, последний тупо болтается и доступа к нему нет, проблемой это не назвать
0
gru74ik
Эксперт CЭксперт С++
4207 / 1853 / 198
Регистрация: 20.02.2013
Сообщений: 4,992
Записей в блоге: 22
17.08.2016, 11:53 #10
Цитата Сообщение от Kastaneda Посмотреть сообщение
а, виртуальный деструктор то никто не упомянул.
В посте #3 упомянули же:
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
Виртуальный деструктор?
0
Kastaneda
Jesus loves me
Эксперт С++
4697 / 2901 / 238
Регистрация: 12.12.2009
Сообщений: 7,386
Записей в блоге: 2
Завершенные тесты: 1
17.08.2016, 11:57 #11
Цитата Сообщение от gru74ik Посмотреть сообщение
В посте #3 упомянули же:
да, я слепой сегодня)
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
последний тупо болтается и доступа к нему нет
судя по коду доступа и к первому нет, но при необходимости можно получить доступ к обоим. Это можно упомянуть, да, но хз проблема ли это. Возможно на собеседовании (если ТС до него дойдет)) поднимут этот вопрос, типа как бы вы получили доступ к foo::i, а к bar::i?
0
Ferrari F1
580 / 518 / 101
Регистрация: 27.01.2015
Сообщений: 3,025
Записей в блоге: 1
Завершенные тесты: 1
17.08.2016, 11:57 #12
Плюс ко всему, раз определен кастомный десруктор то нада еще определять свои операции управления копированием
0
Kastaneda
Jesus loves me
Эксперт С++
4697 / 2901 / 238
Регистрация: 12.12.2009
Сообщений: 7,386
Записей в блоге: 2
Завершенные тесты: 1
17.08.2016, 12:02 #13
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
то нада еще определять свои операции управления копированием
ага, как раз в 4-ом посте на это намекал)

Добавлено через 4 минуты
нет, я чуть больше подумал, просто добавление оператора = и КК (на всякий) недостаточно. Сделать оператор виртульным тоже не поможет.
0
John Prick
823 / 756 / 152
Регистрация: 27.07.2012
Сообщений: 2,150
Завершенные тесты: 3
17.08.2016, 12:03 #14
Непонятен такой момент: приватное наследование использовано намеренно или это типа "ошибка"? Если первое, то нет смысла о копировании говорить между объектами двух этих классов. Всё равно это не скомпилится ведь.
0
Ferrari F1
580 / 518 / 101
Регистрация: 27.01.2015
Сообщений: 3,025
Записей в блоге: 1
Завершенные тесты: 1
17.08.2016, 12:07 #15
C++
1
*f=*b;
А тут базовому объекту присваивается базовая часть произв. объекта, судя по синтезируемому оператору присваивания
0
17.08.2016, 12:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.08.2016, 12:07
Привет! Вот еще темы с ответами:

Зачем переменная size в данном коде? - C++
Здравствуйте. Задание: Реализовать представление и основные операции для множеств. Помимо добавления, удаления, получения (и т.д.)...

Что означает pos ^= 1 в данном коде? - C++
#include <stdio.h> #include <stdlib.h> #define FILE_NAME "numbers.txt" int main(void) { int...

Какая альтернатива указателям в данном коде? - C++
#include "stdafx.h" #include <iostream> #include <stdlib.h> using namespace std; void matrix(int **m, int r, int s) { ...

Перечислить все подмножества n элементного множества {1,2,.,n} - C++
Помогите пожалуйста написать программу для этой задачи: Перечислить все подмножества n элементного множества {1,2,...,n}


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

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

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