Что будет в результате выполнения следующей программы?

class Base{

public: void f();
private: int *baseID;
};
class Derived : public Base{

public: void foo();
private: int derivedID;
};
Derived my1;
int x;
my1.baseID=&x;



присвоение будет выполнено
результат непредсказуем
ошибка компиляции
сообщение об ошибке внутренних адресов

В какой строке(строках) ошибка?

1 int f1() {
2 char ch, ch1='a', ch2='b', ch3='c';
3 ch=ch1+ch2+ch3;
4 f1=int(ch);
5 return f1;
6 }



1 и 3
1, 3, 4 и 5
4 и 5

Какое выражение верно с точки зрения целесообразности использования динамического распределения памяти?

char* c = new char[5]; c = "aabb";
char* c = "aabb";
char c; c = new string("aabb");

Определите результат выполнения следующего кода:

float *thingPtr = new float (3.14159)



возникнет ошибка компиляции, поскольку нельзя задавать значение переменной в процессе её создания
возникнет ошибка компиляции, поскольку при создании объекта не указан размер выделяемой памяти
данная строка задает значение объекту типа float

Что выполняет операция "delete [] v;" в данном ниже коде:

class MyClass
{
int sz; // число элементов
int * v; // указатель на целые
public:
MyClass ( int );
~MyClass ();
int&operator [] ( int index ); // операция индексации
};

MyClass::~ MyClass()
{
delete [] v;
}



удаляет первый элемент из массива "v"
удаляет последний элемент из массива "v"
удаляет весь массив "v", освобождая память
удаляет указатель на массив "v" из памяти

Что нужно сделать для освобождения памяти после выполнения такого кода ?

char *a; a = new char[20];



delete [] a;
delete a[];
delete a;

Что произойдёт если операция выделения памяти new завершится неудачно?

произойдёт аварийное завершение программы
программа выдаст сообщение о невозможности выделения памяти под данный объект и вернёт ненулевой указатель
выделение памяти под объект не произойдёт, и операция new вернёт нулевой указатель или будет сгенерировано исключение

Что будет выведено на экран, если вызвать данную функцию последовательно три раза?

void f1() {
static int flag=0;
if (!flag) {
cout << "false ";
flag=5;
}
else {
cout <<"true ";
flag=0;
}
}



false false false
false true false
true false true

Что будет выведено в результате выполнения данного кода?

int f1(int x1, int &x2) { return ++x1 + (++x2); }
int main()
{ int a = 7, k = 1;
k = f1(a, k);
cout << a << " " << k;
}



7 1
8 10
7 10

Что описывает данная строка программы: float mas=new int[3][2]?

создание двумерного динамического массива размерности 3*2
создание одномерного динамического массива из 3 элементов
создание одномерного динамического массива из 2 элементов
данная строка представляет собой ошибочную запись и работать не будет

RSS-материал RSS-материал

Не нашли ответ на свой вопрос? Задайте его на нашем форуме.