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

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

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

Дано частичное определение класса 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;  }

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

Варианты ответа
будет, но с утечкой памяти
не будет, потому что result - локальный объект
не будет, потому что произойдет ошибка компиляции
будет(Верный ответ)
Похожие вопросы

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

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

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

А) 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 MyClass0{  public:    int x;  //...};class MyClass1 : MyClass0{  //...};	
Какой статус доступа будет иметь компонент "x" класса "MyClass0" в производном классе "MyClass1"?

Что будет выведено на экран?

  class A  { public:    A() { x = 1; };               int f() { return x; };    protected: int x;  };  class B  { public:    B() { x = 2; };               int f() { return x; };    protected: int x;  };  class C : public A, public B  {  };   C* c = new C;  cout << c->f();  delete c;  

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

  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];}  
Какие из следующих операторов приведут к ошибкам компиляции?

Определены классы:

  class A  { public: void fun() { cout << "функция класса A\n"; }  };  class B: public A  { public: void fun() { cout << "функция класса B\n"; }  };  class C: public B  { public: void fun() { cout << "функция класса C\n"; }  };  
Что будет напечатано в результате выполнения операторов:
      C obj;      obj.A::fun();  

Что будет напечатано в результате работы программы:

  class A   { public: A() { cout << "A "; };            virtual A* new_A() { return new A(); }  };  class B : public A   { public: B(){ cout << "B " ;};            A* new_A() { return new B(); }  };  void fun(A* p1, A* p2)  { A* p3 = p1->new_A();    A* p4 = p2->new_A();  }  void main()  { A* p1 = new A;    B* p2 = new B;    fun(p1,p2);  }    

Какое отношение между классами реализовано в данном случае?

   class A  {  public: A() { a = 0; };             virtual int f() { return a; }             int a;  };  class B: public A  {  public: B() { a = 1; };     virtual int f() { return a; }  };