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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.60
Card1nal
6 / 6 / 0
Регистрация: 04.01.2010
Сообщений: 118
#1

Списки инициализации - C++

12.01.2011, 13:02. Просмотров 2462. Ответов 5
Метки нет (Все метки)

Подскажите пожалуйста, как составить список инициализации для конструктра следующего класса?

C++
1
2
3
4
5
6
7
8
9
10
11
12
class Droid{
  public:
  Droid::Droid();
  Droid::~Droid();
 
  private:
  std::string Id;// le matricule cite plus haut                                                                                           
  size_t Energy; //l'energie restante avant de changer les piles                                                                          
  size_t const Attack;// la puissance d'attaque                                                                                           
  size_t const Toughness// sa resistance                                                                                                  
  std::string *Status;  // le statut actuel du droid.                                                                                     
};
Id передается конструктору в качестве параметра, у оостальных естьзначения по умолчанию
И еще - насколько я понимаю, там именно список и нужен? (т.к. const переменные)
Поправьте, если я не прав.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.01.2011, 13:02     Списки инициализации
Посмотрите здесь:

Инициализация (ООП, списки инициализации) - C++
Доброго времени суток, хотелось бы узнать, как происходит процесс инициализации полей класса при использовании списков инициализации. ...

Конструктор инициализации - C++
Как передать параметры конструктору, если объект класса определен как указатель? #include <iostream> using namespace...

Ошибка инициализации - C++
При такой инициализации вылезают ошибки: error C2064: term does not evaluate to a function taking 7 arguments IntelliSense: call of...

Ошибка инициализации - C++
Доброго времени суток! У меня такая проблема, создал небольшой проект в windows forms, ну мой первый калькулятор, фактически это мое первое...

Ошибка инициализации - C++
Помогите пожалуйста исправить ошибку в этой программе #include <iostream> using namespace std; #include <cstring> class ZOO ...

файл инициализации - C++
подскажите как можно в программе записать функцию GetPrivateProfileInt нашел синтаксис UINT WINAPI GetPrivateProfileInt( _In_ ...

Список инициализации конструктора - C++
Всем привет. У меня есть некоторые вопросы насчет списка инициализации конструктора. Да и вообще не понимаю отличия от инициализации в теле...

Ошибка инициализации переменных - C++
#include <iostream> #include <math.h> #include <conio.h> using namespace std; double f(double x) { return ...

Возможна ли инициализация в инициализации? - C++
Изучая новый стандарт, заинтересовался: а можно ли как-то сделать массив указателей, например, на тип int, инициализируя ссылочные...

Ошибка инициализации bool*** - C++
Я, похоже, совершенно не разбираюсь в указателях, так что еще один глупый вопрос: где ошибка? bool*** result_array = new...

Правила объявления инициализации - C++
Напишите основные - самые главные правила обьявления инициализации.

Блок инициализации цикла for - C++
Добрый вечер, #include <iostream> using namespace std; int main() { int i = 0; for(false; ; ++i){} // ok for(true;...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CyBOSSeR
Эксперт C++
2300 / 1670 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
12.01.2011, 13:17     Списки инициализации #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Droid {
public:
  Droid()
  : id ("id")
  , Energy(1)
  , Attack(2)
  , Toughness(3)
  , Status(0)
  {}
 
  private:
  std::string Id;// le matricule cite plus haut                                                                                           
  size_t Energy; //l'energie restante avant de changer les piles                                                                          
  size_t const Attack;// la puissance d'attaque                                                                                           
  size_t const Toughness// sa resistance                                                                                                  
  std::string *Status;  // le statut actuel du droid.                                                                                     
};
Цитата Сообщение от Card1nal Посмотреть сообщение
И еще - насколько я понимаю, там именно список и нужен? (т.к. const переменные)
Именно.
SashaPinsk
39 / 37 / 2
Регистрация: 27.12.2009
Сообщений: 73
12.01.2011, 13:17     Списки инициализации #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <string>
 
using std::string;
 
class Droid
{
public:
    Droid(size_t = 1, size_t = 1, size_t = 1, string = "");
    ~Droid(){};
private:
    string Id;  // le matricule cite plus haut 
    size_t Energy; //l'energie restante avant de changer les piles  
    size_t const Attack;    // la puissance d'attaque                                                                                           
    size_t const Toughness; // sa resistance                                                                                              
    std::string *Status;  // le statut actuel du droid.                                                                                     
};
 
Droid::Droid(size_t temp1, size_t temp2, size_t temp3, string str1) 
    : Attack(temp1), Toughness(temp2)
{
    Id = str1;
    Energy = temp1;
}
Card1nal
6 / 6 / 0
Регистрация: 04.01.2010
Сообщений: 118
12.01.2011, 14:04  [ТС]     Списки инициализации #4
Это все записывается в .h? А как тогда в .cpp его объявить?
SashaPinsk
39 / 37 / 2
Регистрация: 27.12.2009
Сообщений: 73
12.01.2011, 14:14     Списки инициализации #5
В заголовочный файл записываются только объявления ф-ций, а их определение в .cpp соответственно. Т.е. твой .h файл:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <string>
 
using std::string;
 
class Droid
{
public:
        Droid(size_t = 1, size_t = 1, size_t = 1, string = "");
        ~Droid();
private:
        string Id;      // le matricule cite plus haut 
        size_t Energy; //l'energie restante avant de changer les piles  
        size_t const Attack;    // la puissance d'attaque                                                                                           
        size_t const Toughness; // sa resistance                                                                                              
        std::string *Status;  // le statut actuel du droid.                                                                                     
};
А сами функции определяешь в .cpp файле.
Card1nal
6 / 6 / 0
Регистрация: 04.01.2010
Сообщений: 118
12.01.2011, 14:34  [ТС]     Списки инициализации #6
Спасибо, разобрался.
Yandex
Объявления
12.01.2011, 14:34     Списки инициализации
Ответ Создать тему
Опции темы

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