Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

12.01.2011, 13:02. Просмотров 2517. Ответов 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 переменные)
Поправьте, если я не прав.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.01.2011, 13:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Списки инициализации (C++):

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

Когда надо использовать списки инициализации, а когда можно заменить их констуктором по умолчанию? - C++
1)Любезные,скажите когда надо исп. списки инициализации, а когда можно заменить констуктором по умолчанию? 2) правильно ли...

Списки, как склеить списки между собой? - C++
Ребят, привет всем, есть код, в классе которого описаны несколько методов: добавление элемента в список, удаление и просмотр списка, дак...

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

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

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

5
CyBOSSeR
Эксперт С++
2306 / 1676 / 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 переменные)
Именно.
1
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;
}
1
Card1nal
6 / 6 / 0
Регистрация: 04.01.2010
Сообщений: 118
12.01.2011, 14:04  [ТС] #4
Это все записывается в .h? А как тогда в .cpp его объявить?
0
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 файле.
0
Card1nal
6 / 6 / 0
Регистрация: 04.01.2010
Сообщений: 118
12.01.2011, 14:34  [ТС] #6
Спасибо, разобрался.
0
12.01.2011, 14:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.01.2011, 14:34
Привет! Вот еще темы с ответами:

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

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

Ошибка инициализации классов - C++
Доброго времени суток, Я в основном программирую на C#, но вот решил попробовать плюсы. И облом при первой же попытке, в шарпе при...

Упражнения по инициализации,определении - C++
Проверьте пожалуйста, правильно я понимаю смысл инициализации указателей на константу, константных выражений и тп. 1. Объясните...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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