Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

малко помощ C++

Featured Replies

Здравейте , предстои ми изпит по Обектно-ориентирано програмиране и не знам отговорите няколко въпроса от едни примерни тестове : 1.Дайте пример за явно разрушаване на обект на известен клас Student 2.Дайте пример за достъп до интерфейса на обект на известен клас Student 3.Резултатът от изпълнение на процедура се присвоява на името й : а) Вярно б) Грешно в) Само ако е inline процедура 4.Функции на параметър обект , който е предаван само по стойност използуват : а) Копиращ конструктор б) Указател в) Вградени inline процедури 5.Декларираните в динамичната памет обекти се разрушават автоматично : а) вярно б) грешно в) ако има явно описан деструктор 6. Шаблонните функции използуват параметър за деклариране на : а) default конструктор б)Тип на данните в) смяна на приоритета 7. При сложно наследяване производният клас наследява членове на базовите: а) като public б) като protected в)Зависи от схемата на наследяване Ами това са ми въпросите , на които немога да определя еднозначно отговорите , Благодаря предварително

Въпросите са доста лесни. Казвам го като човек, който сам се е учил да програмира. Не е имало кой да ми дава жокери.

На този въпрос:

5.Декларираните в динамичната памет обекти се разрушават автоматично :

а) вярно б) грешно в) ако има явно описан деструктор

отговорът е "в"

А за първият въпрос това е решението:

#include <iostream>
#include <cstdlib>

using namespace std;

class Student {
public:
	Student() {
		cout << "Constructing object" << endl;
	}
  
	~Student() {
		cout << "Destroying object" << endl;
	}
};
int main() {
   Student student;
  
	return 0;
}

Редактирано от Bfaf (преглед на промените)

Въпросите са доста лесни. Казвам го като човек, който сам се е учил да програмира. Не е имало кой да ми дава жокери.

На този въпрос:

отговорът е "в"

Bfaf позволи ми да не се съглася тук.

Въпросът е за обект деклариран в динамичната памет, а не данните на обекта да са в динамичната памет.

Т.е.:

{
	// И на трите ще се извика автоматично конструктор.
	static some_class c_static;
	some_class c_stack;
	some_class *c_dynamic = new(some_class);

	// Тук автоматично ще се извика деструктора на c_stack.
	// Обаче съвсем задължително трябва да разрушиш обекта c_dynamic с delete, иначе няма да се изпълни деструктора.
	delete(c_dynamic);
}
// на края на програмата автоматично ще се извика деструктора на c_static.
Така че, мисля за правилен б).

Ако ще се ползва само auto_ptr (unique_ptr, shared_ptr) тогава e a).

Редактирано от flare (преглед на промените)

Bfaf позволи ми да не се съглася тук.

Бъпросът е за обект деклариран в динамичната памет, а не данните на обекта да са в динамичната памет.

Значи научих още нещо :clown:.

Bfaf примера дето си дал не е ли деструктор ? А човека пита за унищожаване на обект. Нов съм в ООП-то и ме поправете ако греша.

Bfaf примера дето си дал не е ли деструктор ? А човека пита за унищожаване на обект. Нов съм в ООП-то и ме поправете ако греша.

Мда, и на мен ми се струва, че това е неявно (автоматично) унищожаване. В общия случай, явно викане на деструктор не се прави, така че вероятно се има предвид употреба на new и delete...
  • Автор

Добре пичове кажете последно кое е вярно или не ви се занимава ...

Вече срам ме хвана от мен си. Очевидно това не е вярно:

Въпросите са доста лесни. Казвам го като човек, който сам се е учил да програмира. Не е имало кой да ми дава жокери.

Така че по-добре някой по-опитен да помага.

Първо да кажа, че това си е мое мнение, някои от въпросите не са много еднозначни.

1.Дайте пример за явно разрушаване на обект на известен клас Student

{
    Student  *obj = new(Student);
    delete(obj);
}

2.Дайте пример за достъп до интерфейса на обект на известен клас Student

{
    Student  obj;
    obj.printGrades();
}

3.Резултатът от изпълнение на процедура се присвоява на името й :

а) Вярно б) Грешно в) Само ако е inline процедура

Това е абсолютно невярно, така че б)

4.Функции на параметър обект , който е предаван само по стойност използуват :

а) Копиращ конструктор б) Указател в) Вградени inline процедури

Тук смятам, че е а), щом се предава по стойност, значи се прави локално копие, за което ще се ползва копиращ конструктор.

5.Декларираните в динамичната памет обекти се разрушават автоматично :

а) вярно б) грешно в) ако има явно описан деструктор

Както казах и преди за това се колебая между б) или а) - ако не сте учили auto_ptr е б)

6. Шаблонните функции използуват параметър за деклариране на :

а) default конструктор б)Тип на данните в) смяна на приоритета

б)

7. При сложно наследяване производният клас наследява членове на базовите:

а) като public б) като protected в)Зависи от схемата на наследяване

в)
  • Автор

flare благодарности :)

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    32%
    Дарени 315 € от нужните 1 000 €

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.