# ifndef _PARENT_H_
# define _PARENT_H_
class Parent
{
protected:
int m_id;
public:
Parent():m_id(0)
{
std::cout<<__PRETTY_FUNCTION__<<"\n";
}
Parent(const int & id):m_id(id)
{
std::cout<<__PRETTY_FUNCTION__<<"\n";
}
Parent(const Parent& parent):m_id(parent.m_id)
{
std::cout<<__PRETTY_FUNCTION__<<"\n";
}
void setId(const int& id) {m_id = id;}
Parent& operator=(const Parent& parent)
{
this->m_id = parent.m_id;
std::cout<<__PRETTY_FUNCTION__<<"\n";
return *this;
}
};
# endif // _PARENT_H_
# include <iostream>
# include "parent.h"
Parent setParent(Parent parent)
{
return parent;
}
Parent getParent(const int& i)
{
Parent p(i);
return /*Parent(i)*/p;
}
int main()
{
//Parent parent(10);
//setParent(parent);
//parent = getParent(11);
//return 0;
}
внимание вопросы:
1. сколько раз при вызове setParent(parent) вызовется конструктор копирования?
2. сколько раз при вызове getParent(11) вызовется конструтор копирования?
П.С.
если прилагаете к ответу консольный вывод программы указывайте пожалуйста версию компилятора и ОС.