![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
-NIK- |
![]()
Сообщение
#1
|
Гость ![]() |
Здравствуйте.
Получили такое вот задание, немного не привычное - не напписать простенькую программу или типо того, а найти "проблемы" в данном програмном коде. Как я понимаю, нужно посмотреть на код и выявить как ошибки так и не достатки видные с полета профессионального или опытного программиста. Простите, но я кроме парочки претензий к конструкторам да и то не сильно обоснвоанных ничего не увидел. прошу помочь, нужно срочно.#include<iostream> class Foo { public: Foo(int j) { i=new int[j]; s = j} ~Foo() { delete i; } private: int* i; int s; }; class Bar: Foo { public: Bar(int j) { i=new char[j]; } operator>> (Bar b) { for (int k = 0; k < s; k++) { cout << b.i[k] << " "; } } ~Bar() { delete i; } private: char* i; }; int main() { int i; cin>>i; for(int j=100;j<-100;j--); { if(j%3=0) i+=i++ + ++i; } Foo* f=new Foo(i); Foo* b=new Bar(j); *f=*b; delete f; delete b; } |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
По Стандарту этот код вообще не будет компилироваться:
1) operator >> это функция, и надо указывать ее тип, у тебя этого не сделано (кстати, перегрузка операции ввода для класса, описанная в самом классе, да еще и в которой производится вывод элементов - это очень "сильный" ход...); 2) при инициализации наследника не производится инициализация предка (у предка нет конструктора без параметров) "Пустые" (ничего не выполняющие) циклы, проблемы с уровнями доступа - обращение к частным членам предка в потомке. У тебя, кстати, вообще не общее, а частное наследование: class Bar: Foo { аналогично class Bar: private Foo { Так что ты меня извини, но искать недочеты можно в программе, которая хотя бы успешно компилируется, а не в той, которая валится на этапе компиляции. Тут речь идет уже не о "проблемах", а об обычных синтаксических ошибках, выявить которые помогает любой более или менее соответствующий Стандарту компилятор. |
![]() ![]() |
![]() |
Текстовая версия | 23.07.2025 22:23 |