С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
oleszka
0 / 0 / 0
Регистрация: 09.04.2012
Сообщений: 13
1

Поля класса

28.06.2012, 00:28. Просмотров 524. Ответов 8
Метки нет (Все метки)

здравствуйте ) извините заранее если глупый вопрос я просто новичок)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class mycl {
       public:
        char  a[], b[];
};
 
int main()
{
        mycl pr;
 
        cin>>pr.a;
        cin>>pr.b;
 
        getch();
        return 0;
}
Поля класса

Почему в экземпляр pr попадает два раза строка "asd". Почему не так - pr: {"qwe","asd"} ?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.06.2012, 00:28
Ответы с готовыми решениями:

Использование в качестве поля класса указатель на объект другого класса
Ошибка в названии - "указателЯ" Вот, пытаюсь освоить ООП (пока только...

Друзья, подскажите, говорят, что можно поля класса инициализировать в момент объявления класса. Как это сделать?
Скажу сразу, а то сейчас начнется, что я прекрасно понимаю, что поля класса при...

В конструкторе вложенного класса инициализируется приватное поле. Потом вызывается функция-метод этого класса и выводит значение этого поля НО НЕ ТО!
Друзья! Почему так? #include <windows.h> #include <iostream> using namespace...

поля класса
Задача заключается в поиске площади треугольника через класс. Программой должна...

Поля дружественного класса
есть примерно такой код class ClientAuthorization { public: int...

8
asidorchenko
384 / 210 / 102
Регистрация: 09.04.2012
Сообщений: 635
28.06.2012, 00:54 2
У меня не скопилировалось
error C2229: class 'mycl' has an illegal zero-sized array
0
alexey31415
59 / 59 / 7
Регистрация: 16.05.2010
Сообщений: 632
28.06.2012, 01:37 3
Цитата Сообщение от oleszka Посмотреть сообщение
char *a[], b[];
попробуйте указать длину массива или использовать char * вместо char
0
MrGluck
Модератор
Эксперт CЭксперт С++
8106 / 4958 / 1436
Регистрация: 29.11.2010
Сообщений: 13,451
28.06.2012, 01:55 4
Добавь после считывания cin.ignore()
Все дело в том, что в потоке остается символ '/n' после нажатия Enter и он идет в след. строку.
Да и массивы у тебя чудные. Объявил бы размерность, что ли. Динамические (со *) использовать не советую, с памятью намучаешься.
0
alexey31415
59 / 59 / 7
Регистрация: 16.05.2010
Сообщений: 632
28.06.2012, 09:31 5
Цитата Сообщение от MrGluck Посмотреть сообщение
Все дело в том, что в потоке остается символ '/n' после нажатия Enter и он идет в след. строку.
Не спорю,но как он заполняет первый массив второй строкой
Цитата Сообщение от oleszka Посмотреть сообщение
char *a[], b[];
Сделайте так
C++
1
2
3
4
char a[4], b[4];
//размерность 4,так как записываются 3 символа и завершающий нуль-символ
//или можно так
char *a[4], b[4];
1
Van111
212 / 191 / 22
Регистрация: 03.08.2011
Сообщений: 2,674
Записей в блоге: 12
28.06.2012, 11:59 6
Цитата Сообщение от oleszka Посмотреть сообщение
class mycl {
* * * *public:
* * * * char *a[], b[];
};
а вы не думали конструктор слелать
C++
1
2
3
4
5
6
7
mycl::mycl(char *s1,char *s2)
{
a=new char[strlen(s1)];
b=new char[strlen(s2)];
strcpy(a,s1);
strcpy(b,s2);
}
Добавлено через 5 минут
oleszka, для переменных типа char* всегда должна быть выделена память если вы хотите работать с ними
1
grizlik78
Эксперт С++
2016 / 1497 / 206
Регистрация: 29.05.2011
Сообщений: 3,121
28.06.2012, 12:02 7
Van111, тогда уж
C++
1
2
3
4
a = new char[strlen(s1) + 1];
b = new char[strlen(s2) + 1];
strcpy(a,s1);
strcpy(b,s2);
2
MrGluck
Модератор
Эксперт CЭксперт С++
8106 / 4958 / 1436
Регистрация: 29.11.2010
Сообщений: 13,451
28.06.2012, 12:52 8
Ну тогда уж надо и деструктор, конструктор копий и оператор присвоения.
1
oleszka
0 / 0 / 0
Регистрация: 09.04.2012
Сообщений: 13
28.06.2012, 15:00  [ТС] 9
ааааа.. я понял. точно длина!
еще попробую конструктор. СПАСИБо всем )
0
28.06.2012, 15:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.06.2012, 15:00

Вывести поля класса
Положим, есть класс A: class A { public: int a,b,c,d; // . . . какие-то...

Statiс Поля Класса
Имея класс class Worker { static const int Part2 = 0x22; static const...

Static поля класса
объясните нубу, вот имею я такой код на С# class WebResponse { ...


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

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

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