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

Что значит "class PairDouble"? - C++

Восстановить пароль Регистрация
 
Stason676
Заблокирован
27.01.2014, 07:38     Что значит "class PairDouble"? #1
C++
1
2
3
4
5
6
7
8
class PairDouble
{
public:
    PairDouble(double x1, double y1) : x(x1), y(y1) { }
    void ShowQ();
private:
    double x, y;
};
Здравствуйте, не могли бы подсказать что значит вот эта строка в коде "PairDouble(double x1, double y1) : x(x1), y(y1) { }", а конкретно вместо вызова базового конструктора вот эта непонятная запись "x(x1), y(y1) { }".
Спасибо.
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
27.01.2014, 07:55     Что значит "class PairDouble"? #2
Конструктор со списком инициализации. Инициализирует поля класса x и y значениями x1 и y1 соответственно.
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
27.01.2014, 08:20     Что значит "class PairDouble"? #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Stason676, когда доберетесь до наследования, увидите как такая же конструкция будет использоваться для вызова конструктора базового класса, если придется передавать параметры.
И еще, если в вашем примере поля x,y будут константами, то другого способа их проинициализировать нет. Т.е. нельзя в теле конструктора написать: x = x1;
Игорюня
 Аватар для Игорюня
20 / 16 / 7
Регистрация: 07.12.2013
Сообщений: 244
27.01.2014, 09:05     Что значит "class PairDouble"? #4
Кстати я такую конструкцию видел и пытался написать,но компилятор её не принимал,поэтому пишу всё в фигурных скобках.
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
27.01.2014, 09:07     Что значит "class PairDouble"? #5
Игорюня, если есть вопрос, задавайте с примером кода. А так - ну не получилось, криво записали. Можем дружно посочувствовать.
Игорюня
 Аватар для Игорюня
20 / 16 / 7
Регистрация: 07.12.2013
Сообщений: 244
27.01.2014, 09:10     Что значит "class PairDouble"? #6
Цитата Сообщение от 0x10 Посмотреть сообщение
Игорюня, если есть вопрос, задавайте с примером кода. А так - ну не получилось, криво записали. Можем дружно посочувствовать.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
class random
{
public:
    void Set(int b):a(b){}
 
private:
    int a
 
};
 
 
 
int main()
{   
    random object;
    object.Set(10);
    system("pause");
 
}
Компилятору не нравится void Set(int b):a(b){}
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11811 / 6790 / 767
Регистрация: 27.09.2012
Сообщений: 16,844
Записей в блоге: 2
Завершенные тесты: 1
27.01.2014, 09:11     Что значит "class PairDouble"? #7
Цитата Сообщение от Игорюня Посмотреть сообщение
void Set(int b):a(b){}
это не конструктор
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
27.01.2014, 09:11     Что значит "class PairDouble"? #8
Игорюня, синтаксис списка инициализации существует для конструктора. А тут обычный метод.
Stason676
Заблокирован
27.01.2014, 14:01  [ТС]     Что значит "class PairDouble"? #9
Цитата Сообщение от 0x10 Посмотреть сообщение
Конструктор со списком инициализации. Инициализирует поля класса x и y значениями x1 и y1 соответственно.
А для чего это нужно? В теле конструктора нельзя это сделать?
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
27.01.2014, 14:04     Что значит "class PairDouble"? #10
Stason676, в 3 посте уже было сказано про константные поля.
Плюс, если вы присваиваете значения в теле конструктора, то по факту выполняется два действия: сначала инициализация, а потом присваивание.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.01.2014, 14:17     Что значит "class PairDouble"?
Еще ссылки по теме:

C++ Что значит "Косвенная адресация к элементам массива"
C++ Что значит? ostream_iterator<int>(cout, " ");
Что значит "в поле шириной 10 символов"? C++

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

Или воспользуйтесь поиском по форуму:
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
27.01.2014, 14:17     Что значит "class PairDouble"? #11
Цитата Сообщение от 0x10 Посмотреть сообщение
сначала инициализация, а потом присваивание.
инициализации может и не быть, если имеем дело с примитивными типами.
Yandex
Объявления
27.01.2014, 14:17     Что значит "class PairDouble"?
Ответ Создать тему
Опции темы

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