База ответов ИНТУИТ

Язык программирования C++ для профессионалов

<<- Назад к вопросам

Будет ли работать этот оператор?

  MyClass operator+(MyClass  x1, MyClass x2)  { int sum= x1.a + x2.a;    return *new MyClass(sum);  }  

(Отметьте один правильный вариант ответа.)

Варианты ответа
не будет
будет
будет, но с утечкой памяти(Верный ответ)
Похожие вопросы
Дано частичное определение класса MyClass:
class MyClass {  int a;  //...public:  MyClass(int);  MyClass(const MyClass&);  //...};

Будет ли работать этот оператор:

MyClass operator+(MyClass  x1, MyClass x2)  { int sum= x1.a + x2.a;    MyClass result(sum);    return result;  }

В каком случае определение класса приведет к ошибке компиляции:

А) class MyClass          {     int n;     // некий код ...     int ADD(int n);     MyClass(int);     ~MyClass();   }; В) struct MyClass          {     int n;     // некий код ...     int ADD(int n);     MyClass(int);     ~MyClass();   };	
Верно ли объявлен следующий класс?
class MyClass   {     int n;     MyClass (int);     ~MyClass ();   };
Что обозначает следующая запись?
class Block<int, 100>{public:Вlоск() {р = new int [100];}~Block {delete [ ] p;}operator int * ( );protected:int * p;};Block<int, 100>:: operator int *(){return р;}

Объявлен класс:

  class Point  {   int x,y,z;      char *s;    public:      Point(int,int,int, char*);      int GetX() { return x;}      int GetY() { return y;}      int GetZ() { return z;}      Point* operator->()       { return this;}   };  Point::Point(int x1,int y1,int z1, char * s1)       { x=x1; y=y1; z=z1; int n=strlen(s1); s=new char[n+1];         for(int i=0;i<=n;i++) s[i]=s1[i];}  
Какие из следующих операторов приведут к ошибкам компиляции?

Выберете корректное объявление

1.class A{		friend A&operator+(A&a, A&b);};A&operator+(A&a, A&b);2.class A{		friend A&operator+(A&b);};A&A::operator+(A&a, A&b);3.class A{		A&operator+(A&b);};friend A&A::operator+(A&a, A&b);	

Что будет выведено на экран в результате выполнения приведенной ниже программы:

	#include "iostream.h"#include "conio.h"class NewClass{  int x;  int y;  public:  NewClass(int x0,int y0)  {    x=x0;    y=y0;  }  void DISPLAY(void)  {    cout<<x<<" "<<y;  }  NewClass operator+(NewClass obj)  {    NewClass tmp(0,0);    tmp.x=x+obj.x;    tmp.y=y+obj.y;    return tmp;  }};int main(){  NewClass obj1(1,3),obj2(5,8);  obj1=obj1+obj2;  obj1.DISPLAY();  getch();  return 0;}	

Выберете корректные объявления

1.class A{		friend A&operator+(A&a, A&b);};A&operator+(A&a, A&b);2.class A{		friend A&operator+(A&a, A&b);};A&A::operator+(A&a, A&b);	

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

  #include <iostream>  double s2(double x)    { return x*x; }  double s3(double x)    { return x*s2(x); }  double s4(double x)    { return s2(x)*s2(x); }  int main()  { typedef double (*PTF)(double);     PTF pf[3] = {&s2, &s3, &s4};     double x = 2;     for(int i = 0; i < 3; i++)         cout << (*pf[i])(x) << endl;     return 0;   }  

К какому виду относится класс, объявленный так:

  class vector_handler   { vector* p;    public: vector* operator->() { return p; }            vector_handler(vector* pp) : p(pp) { }  };