Quizzes
Site Language: English
Українська
English
Русский
Programming Tests
Login
Sign Up
Programming Tests
Theory
Snippets
Papers
Landing
Android
Prices
FAQ
Cosmo Story
Terms and Conditions
Privacy Policy
Cookies Policy
Send Feedback
function template
:
Content language: Русский
English
Что выведет на экран следующая программа? #include <iostream> static int a = 0; template<typename T> void f(T t) { static int b = ++a; std::cout << a; std::cout << b++; } int main (int argc, char *argv[]) { f(27); f(634); f(.8); return 0; }
function template
Что нужно вписать вместо точек, чтобы данный код скомпилировался: #include <iostream> using namespace std; template<...> // insert code here void OtherFunc() { T(); } void printIt() { cout << "Func"; } int main() { OtherFunc<printIt> (); return 0; }
function template
Какой из вызовов функции не является верным для определённого шаблона: template<class X, class Y, class Z> void f(Y,Z);
function template
Сколько раз будет вызвана нешаблонная версия функции func? void func(const int& a, const int& b) { } template <typename T> void func(const T& a, const T& b) { } int main() { func(7.0, 34.0); func("cat", "dog"); func(7, 34); func<>(7, 34); func<int>(7, 34); func('a', 12.5); return 0; }
function template
Что будет выведено на консоль в результате выполнения программы? #include <iostream> struct A { char foo() { return 'A';} }; template<class T> struct B : public T { virtual char foo() {return 'B';} }; template<class T> struct C : public T { virtual char foo() {return 'C';} }; int main(int argc, char* argv[]) { A* a = new A(); A* b = new B< A >(); A* c = new C< A >(); A* d = new B< C< A > >(); std::cout << a->foo() << b->foo() << c->foo() << d->foo(); return 0; }
function template
Что будет выведено на экран при выполнении следующего кода: #include <iostream> template<class T>struct Counter { Counter() { ++count; } static int count; }; template<class T> int Counter<T>::count = 0; struct Derived1: Counter<Derived1> {}; struct Derived2: Counter<Derived2> {}; int main(int argc, char** argv) { Derived1 a, b; Derived2 c; std::cout << Derived1::count << Derived2::count << '\n'; return 0; }
function template
Как правильно объявить метод добавления объекта типа ItemType в шаблон Container вида: template<class ItemType> class Container { /* ... */ };
function template
Какое инстанцирование корректно, т.е. не должно привести к ошибке компиляции ? (Укажите все подходящие варианты) template < typename R, typename A > void F(R (A)) { } struct R; struct A { operator R(); }; struct R { R(A) {} }; A::operator R() { return R(* this); } R g(A a) { return R(a); } int main() { A a; R r(a); F< R, A >(a); // (1) F< R, A >(r); // (2) F< R, A >(g); // (3) return 0; }
function template
Что будет вызвано при обращении к методу callFunc объекта obj: template <class X> void func(X val) { } template <> void func<double>(double val) { } class A { public: void callFunc() { func(4.5); } private: void func(int val) { } };
function template
Что выведет на экран следующая программа: #include <iostream> #include <string> #include <sstream> using namespace std; template <class T> inline string to_string(const T& t) { stringstream ss; ss << t; return ss.str(); } class DataType { public: DataType(int); DataType(string, int = 3); const char *getData(); private: string anyData; }; DataType::DataType(int dt) { anyData = to_string(dt); } DataType::DataType(string str, int dt) { anyData = str; anyData += to_string(dt); } const char *DataType::getData() { return anyData.c_str(); } int main(void) { DataType data1 = 8; //1 DataType data2 = string("a"); //2 DataType data3 = DataType(string("b"), 6); DataType data4 = DataType(5); cout << data1.getData() << " " << data2.getData() << " " << data3.getData() << " " << data4.getData(); return 0; }
function template
← Prev
1
2
3
Next →
Sign Up Now
or
Subscribe for future quizzes