The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"как правильно вызвать инициализирующую функцию в классе?"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"как правильно вызвать инициализирующую функцию в классе?"
Сообщение от Lammer emailИскать по авторуВ закладки on 01-Июл-03, 12:33  (MSK)
Пишу
class my_class {
  int x;
  char y;
public:
my_class (int x, char y) { this->x = x; this->y = y; }
my_class (int x) {   my_class(x, 'N'); }
                                     ^^ правильно или нет?????
void output(void) { printf("%d,%c\n",this->x,this->y); }
};
описываю my_class X(2); X.output() показывает мусор (должно быть 2 и N)
где баг?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "как правильно вызвать инициализирующую функцию в классе?"
Сообщение от SergCh Искать по авторуВ закладки on 01-Июл-03, 13:48  (MSK)
>Пишу
>class my_class {
>  int x;
>  char y;
>public:
> my_class (int x, char y) { this->x = x; this->y = y; }
> my_class (int x) {   my_class(x, 'N'); }
>            
>          
>          
>   ^^ правильно или нет?????
> void output(void) { printf("%d,%c\n",this->x,this->y); }
>};
>описываю my_class X(2); X.output() показывает мусор (должно быть 2 и N)
>где баг?
Не правильно.
Опиши все одним конструктором
my_class (int x, char y='N')


  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "как правильно вызвать инициализирующую функцию в классе?"
Сообщение от Andrey Искать по авторуВ закладки on 01-Июл-03, 13:49  (MSK)
>Пишу
>class my_class {
>  int x;
>  char y;
>public:
> my_class (int x, char y) { this->x = x; this->y = y; }
> //my_class (int x) {   my_class(x, 'N'); }
    my_class (int x) { thix->x = x; this->y = 'N'; }
>          
>          
>   ^^ правильно или нет?????
> void output(void) { printf("%d,%c\n",this->x,this->y); }
>};
>описываю my_class X(2); X.output() показывает мусор (должно быть 2 и N)
>где баг?


  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. ">    my_class (int x) { thix->x = x; this->y = 'N'; }"
Сообщение от myself emailИскать по авторуВ закладки on 01-Июл-03, 14:29  (MSK)
Пастойте!
А как же переопределить конструктор?
Хочу инициализировать по разному - то 2-мя переменными
то одной переменной и чтоб можно было вообще без переменных -
пусть по умолчанию значения присвоит!

С функциями такое можно, почему нельзя с конструктором????

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. ">    my_class (int x) { thix->x = x; this->y = 'N'; }"
Сообщение от XMan Искать по авторуВ закладки on 01-Июл-03, 15:43  (MSK)
SergCh уже ответил:

my_class (int x, char y='N') { ................... };

Как видишь, второй параметр необязателен - по-умолчанию в него ставится 'N'.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. ">    my_class (int x) { thix->x = x; this->y = 'N'; }"
Сообщение от myself emailИскать по авторуВ закладки on 01-Июл-03, 15:54  (MSK)
a-a-a!
точно!
Спасибо большое!

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру