Форум программистов, компьютерный форум CyberForum.ru

Конструкторы. синтаксис - C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Яна_Max
3 / 3 / 0
Регистрация: 08.11.2011
Сообщений: 137
27.02.2012, 23:26     Конструкторы. синтаксис #1
Добрый вечер!
Не совсем понятно, как описываются конструкторы: что в круглых скобках, что в фигурных, когда нужно двоеточие.
Например:
C++
1
2
3
4
5
6
7
8
9
class MyClass
{int field1;
 string field2;
 public:
  MyClass(int f1, string f2) //конструктор; f1, f2- объекты класса?
  {field1=f1;
    field2=f2;
  }
}
C++
1
2
3
4
5
class Myclass
{private:
  int field1;
  Myclass::Myclass(): field1(0){} //зачем здесь двоеточие?
}
Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2012, 23:26     Конструкторы. синтаксис
Посмотрите здесь:

Конструкторы C++
Конструкторы C++
конструкторы C++
C++ конструкторы
Конструкторы C++
Конструкторы C++
C++ Конструкторы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
27.02.2012, 23:28     Конструкторы. синтаксис #2
Цитата Сообщение от Яна_Max Посмотреть сообщение
что в круглых скобка
Передаваемые параметры
Цитата Сообщение от Яна_Max Посмотреть сообщение
что в фигурны
Тело конструктора
Цитата Сообщение от Яна_Max Посмотреть сообщение
когда нужно двоеточие
После двоеточия идет список инициализации

Все это есть в книге C++ по ООП.
Яна_Max
3 / 3 / 0
Регистрация: 08.11.2011
Сообщений: 137
27.02.2012, 23:36  [ТС]     Конструкторы. синтаксис #3
Цитата Сообщение от soon Посмотреть сообщение

После двоеточия идет список инициализации

.
а в первом примере field1 инициализируется значением f1(как я понимаю), но двоеточия нет.=)
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
28.02.2012, 00:01     Конструкторы. синтаксис #4
Цитата Сообщение от Яна_Max Посмотреть сообщение
а в первом примере field1 инициализируется значением f1(как я понимаю), но двоеточия нет
Нет. Изначально оно инициализируется тем, что будет поставлено по умолчанию в его конструкторе. А затем ему будет присвоено значение f1. Можете попробовать вывести field1 до присваивания.
sovaz1997
CEO SOVAZ Corp.
 Аватар для sovaz1997
380 / 226 / 2
Регистрация: 17.12.2011
Сообщений: 819
Записей в блоге: 1
Завершенные тесты: 1
28.02.2012, 07:59     Конструкторы. синтаксис #5
C++
1
2
3
4
5
6
7
class Human
{
     Human a(/*...*/)
    {
        //...
    }
}
silent_1991
Эксперт C++
4946 / 3022 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
28.02.2012, 13:54     Конструкторы. синтаксис #6
sovaz1997, что это?
sovaz1997
CEO SOVAZ Corp.
 Аватар для sovaz1997
380 / 226 / 2
Регистрация: 17.12.2011
Сообщений: 819
Записей в блоге: 1
Завершенные тесты: 1
28.02.2012, 21:00     Конструкторы. синтаксис #7
По-видимому, ответ на тему
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.02.2012, 11:50     Конструкторы. синтаксис
Еще ссылки по теме:

C++ Конструкторы
C++ Конструкторы C++
C++ Конструкторы С++
C++ Конструкторы
Конструкторы C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
silent_1991
Эксперт C++
4946 / 3022 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
29.02.2012, 11:50     Конструкторы. синтаксис #8
sovaz1997, в том-то и дело, что "видимо". Как по-вашему, что вы написали в том коде?
Yandex
Объявления
29.02.2012, 11:50     Конструкторы. синтаксис
Ответ Создать тему
Опции темы

Текущее время: 13:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru