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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Stason676
Заблокирован
#1

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

27.01.2014, 07:38. Просмотров 336. Ответов 10
Метки нет (Все метки)

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
2448 / 1620 / 238
Регистрация: 24.11.2012
Сообщений: 3,983
27.01.2014, 07:55     Что значит "class PairDouble"? #2
Конструктор со списком инициализации. Инициализирует поля класса x и y значениями x1 и y1 соответственно.
Tulosba
:)
Эксперт С++
4384 / 3227 / 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
2448 / 1620 / 238
Регистрация: 24.11.2012
Сообщений: 3,983
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
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12514 / 7076 / 794
Регистрация: 27.09.2012
Сообщений: 17,477
Записей в блоге: 2
Завершенные тесты: 1
27.01.2014, 09:11     Что значит "class PairDouble"? #7
Цитата Сообщение от Игорюня Посмотреть сообщение
void Set(int b):a(b){}
это не конструктор
0x10
2448 / 1620 / 238
Регистрация: 24.11.2012
Сообщений: 3,983
27.01.2014, 09:11     Что значит "class PairDouble"? #8
Игорюня, синтаксис списка инициализации существует для конструктора. А тут обычный метод.
Stason676
Заблокирован
27.01.2014, 14:01  [ТС]     Что значит "class PairDouble"? #9
Цитата Сообщение от 0x10 Посмотреть сообщение
Конструктор со списком инициализации. Инициализирует поля класса x и y значениями x1 и y1 соответственно.
А для чего это нужно? В теле конструктора нельзя это сделать?
0x10
2448 / 1620 / 238
Регистрация: 24.11.2012
Сообщений: 3,983
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"?
Еще ссылки по теме:

Что значит 1["abcd"]? C++
C++ Что значит? ostream_iterator<int>(cout, " ");
C++ Что значит ":" после параметров функции
Что значит "в поле шириной 10 символов"? C++
Что значит запись "if (b & 1)" C++

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

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

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