Укажите все корректные соответствия между типами C++/CLI и типами CLR (Common Language Runtime):
Укажите все корректные соответствия между типами C++/CLI и типами CLR (Common Language Runtime):
Выберите все правильные способы определения абстрактной функции:
Выберите все правильные способы определения абстрактной функции:
Сколько интерфейсов может наследовать управляемый класс?
Сколько интерфейсов может наследовать управляемый класс?
Укажите все правильные способы объявления статического класса:
Укажите все правильные способы объявления статического класса:
Может ли конструктор класса быть приватным?
Может ли конструктор класса быть приватным?
Сколько базовых классов может иметь управляемый класс?
Сколько базовых классов может иметь управляемый класс?
Что будет выведено на экран в результате выполнения данного кода:
using namespace System;
int main()
{
Int32 v = 8;
Int32% r = v;
Int32^ p = v;
v = 9;
r = 10;
p = 11;
Console::WriteLine(v + ", " + r + ", " + p);
return 0;
}
Что будет выведено на экран в результате выполнения данного кода:
using namespace System;
int main()
{
Int32 v = 8;
Int32% r = v;
Int32^ p = v;
v = 9;
r = 10;
p = 11;
Console::WriteLine(v + ", " + r + ", " + p);
return 0;
}
Что выведет на экран следующий код:
using namespace System;
ref class A
{
public:
virtual void write() {
Console::Write("A");
}
};
ref class B : public A
{
public:
virtual void write() override {
Console::Write("B");
}
};
ref class C : public A
{
public:
void write() new {
Console::Write("C");
}
};
int main()
{
A ^class1 = gcnew A();
A ^class2 = gcnew B();
A ^class3 = gcnew C();
class1->write();
class2->write();
class3->write();
return 0;
}
Что выведет на экран следующий код:
using namespace System;
ref class A
{
public:
virtual void write() {
Console::Write("A");
}
};
ref class B : public A
{
public:
virtual void write() override {
Console::Write("B");
}
};
ref class C : public A
{
public:
void write() new {
Console::Write("C");
}
};
int main()
{
A ^class1 = gcnew A();
A ^class2 = gcnew B();
A ^class3 = gcnew C();
class1->write();
class2->write();
class3->write();
return 0;
}
Скомпилируется ли данный код:
interface class IA
{
void f();
};
interface class IB
{
void f();
};
ref class Clazz : IA, IB
{
public:
void f(){ /*...*/ }
};
Скомпилируется ли данный код:
interface class IA
{
void f();
};
interface class IB
{
void f();
};
ref class Clazz : IA, IB
{
public:
void f(){ /*...*/ }
};
Выберите все правильные утверждения относительно интерфейсов:
Выберите все правильные утверждения относительно интерфейсов:
Что напечатает следующий код:
using namespace System;
class Base
{
public:
virtual void f()
{
Console::Write("Base!");
}
void f2()
{
f();
}
};
ref class Derived : public Base
{
public:
void f()
{
Console::Write("Derived!");
}
};
int main()
{
Derived o;
o.f2();
return 0;
}
Что напечатает следующий код:
using namespace System;
class Base
{
public:
virtual void f()
{
Console::Write("Base!");
}
void f2()
{
f();
}
};
ref class Derived : public Base
{
public:
void f()
{
Console::Write("Derived!");
}
};
int main()
{
Derived o;
o.f2();
return 0;
}
Что будет отображено на экране в результате выполнения следующего кода:
using namespace System;
ref class Base
{
public:
Base() {
Console::Write("A");
}
static Base() {
Console::Write("B");
}
};
ref class Derived : Base
{
public:
Derived() {
Console::Write("C");
}
};
int main() {
Derived a;
return 0;
}
Что будет отображено на экране в результате выполнения следующего кода:
using namespace System;
ref class Base
{
public:
Base() {
Console::Write("A");
}
static Base() {
Console::Write("B");
}
};
ref class Derived : Base
{
public:
Derived() {
Console::Write("C");
}
};
int main() {
Derived a;
return 0;
}
Выберите правильное объявление индексатора с двумя аргументами:
Варианты ответа:
1) int operator[](int i, int j){ /*...*/ }
2) int operator[int i, int j]{ /*...*/ }
3) property int this[int, int] { /*...*/ }
4)
property int default[int, int] { int get(int i, int j){ /*...*/ } void set(int i, int j, int value){ /*...*/ } }
5)
property int this[int, int]
{
int get(int i, int j){ /*...*/ }
void set(int i, int j, int value){ /*...*/ }
}
Выберите правильное объявление индексатора с двумя аргументами:
Варианты ответа:
1) int operator[](int i, int j){ /*...*/ }
2) int operator[int i, int j]{ /*...*/ }
3) property int this[int, int] { /*...*/ }
4)
property int default[int, int] { int get(int i, int j){ /*...*/ } void set(int i, int j, int value){ /*...*/ } }
5)
property int this[int, int]
{
int get(int i, int j){ /*...*/ }
void set(int i, int j, int value){ /*...*/ }
}
Что можно поставить вместо многоточия в списке формальных параметров функции Swap, чтобы в результате выполнения кода на консоль было выведено "2, 1" (укажите все подходящие варианты):
using namespace System;
ref class Clazz
{
public:
static void Swap(int ...a, int ...b)
{
int t = a;
a = b;
b = t;
}
};
int main()
{
int a=1, b=2;
Clazz::Swap(a,b);
Console::Write(a + ", " + b);
return 0;
}
Что можно поставить вместо многоточия в списке формальных параметров функции Swap, чтобы в результате выполнения кода на консоль было выведено "2, 1" (укажите все подходящие варианты):
using namespace System;
ref class Clazz
{
public:
static void Swap(int ...a, int ...b)
{
int t = a;
a = b;
b = t;
}
};
int main()
{
int a=1, b=2;
Clazz::Swap(a,b);
Console::Write(a + ", " + b);
return 0;
}
Как правильно объявить управляемый массив из трёх элементов типа double?
Варианты ответа:
1) double a[3];
2) double *a=new double[3];
3) array<double> a[3];
4) array<double, 3> a;
5) array<double> ^a = gcnew array<double>(3);
6) array<double> *a = new array<double>(3);
Как правильно объявить управляемый массив из трёх элементов типа double?
Варианты ответа:
1) double a[3];
2) double *a=new double[3];
3) array<double> a[3];
4) array<double, 3> a;
5) array<double> ^a = gcnew array<double>(3);
6) array<double> *a = new array<double>(3);
Какие операторы циклов есть в C++/CLI?
Какие операторы циклов есть в C++/CLI?
Что выведет на экран следующий код:
using namespace System;
int main(array ^args)
{
double ^pd1=1.0;
double ^pd2=30.0;
double ^pd3;
*pd3=*pd2**pd1;
pd3=*pd2**pd2;
Console::Write(*pd1**pd3);
return 0;
}
Что выведет на экран следующий код:
using namespace System;
int main(array ^args)
{
double ^pd1=1.0;
double ^pd2=30.0;
double ^pd3;
*pd3=*pd2**pd1;
pd3=*pd2**pd2;
Console::Write(*pd1**pd3);
return 0;
}