Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2012, 12:28   #1
Sylar9
Форумчанин
 
Регистрация: 22.10.2011
Сообщений: 252
Вопрос Ответ на вопрос

Блин препод задал вопрос не знаю как ответить на него и почему такой ответ?
вот вопрос:
Какой порядок вызова методов/конструкторов?
Код:
class A {
A();
A(const A&);
A& operator=(const A&);
};

void f(){
A a;
A b = (b = a);
}

Последний раз редактировалось ACE Valery; 17.01.2012 в 14:49.
Sylar9 вне форума Ответить с цитированием
Старый 17.01.2012, 12:43   #2
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

В вашем варианте ничего не вызовется, потому что все методы класса приватные.

А если изменить код так:
Код:
class A {
public:
A()
{
  std::cout << "A()" << std::endl;
}

A(const A&)
{
  std::cout << "A(const A&)" << std::endl;
}

A& operator=(const A&)
{
  std::cout << "operator=" << std::endl;
  return *this;
}
};

void f(){
A a;
A b = (b = a);
} 

int main()
{
  f();
}
вероятно, станет понятнее
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария

Последний раз редактировалось Blade; 17.01.2012 в 12:47.
Blade вне форума Ответить с цитированием
Старый 17.01.2012, 12:43   #3
Sylar9
Форумчанин
 
Регистрация: 22.10.2011
Сообщений: 252
Вопрос

Цитата:
Сообщение от Blade Посмотреть сообщение
Код:
class A {
A()
{
  std::cout << "A()" << std::endl;
}

A(const A&)
{
  std::cout << "A(const A&)" << std::endl;
}

A& operator=(const A&)
{
  std::cout << "operator=" << std::endl;
}
};

void f(){
A a;
A b = (b = a);
} 

main()
{
  f();
}
так Какой порядок вызова методов/конструкторов?
Sylar9 вне форума Ответить с цитированием
Старый 17.01.2012, 12:49   #4
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

А скомпилировать это вы не догадаетесь?

З.Ы. поправил код в предыдущем посте.
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ответ на вопрос Sylar9 Общие вопросы C/C++ 6 16.01.2012 22:34
Нужен ответ на вопрос! Катя21 Помощь студентам 8 14.01.2012 11:53
F.A.Q(Вопрос-Ответ) ben95 Помощь студентам 17 07.01.2008 13:26
g61 (вопрос/ответ) g61 Свободное общение 2 04.12.2006 10:05