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

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

Войти
Регистрация
Восстановить пароль
 
Вальдемар
-5 / 0 / 0
Регистрация: 29.07.2012
Сообщений: 61
#1

Индексация массива класса, через объект этого класса - C++

07.12.2012, 21:46. Просмотров 441. Ответов 6
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
class A{
    char c[?];//? - размер массива
public:
    A(int C){c[C];}
};
 
int main(){
    A a(5);//вносим размер массива
    getch();
    return 0;
Возможно кто нибудь знает, как при создании объекта внести размер массива?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.12.2012, 21:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Индексация массива класса, через объект этого класса (C++):

Создать объект внутри класса, который может вызывать функцию этого класса - C++
Ребята помогите уже несколько дней мучаюсь. Хочу сделать программу в консоле демонстрации работы лифта в здании 2 этажа. Сделал класс...

Создание статической функции класса, которая принимает экземпляр этого же класса как объект - C++
Привет. Есть такой код class Model { public: Model(); Model(int verticesSize, int facesSize); ~Model(); static void...

В конструктор класса передать объект этого класса - C++
Вопрос на засыпку :) Как в конструктор класса передать объект этого класса? Т.е. class A { public: A(const char* s){} ...

Статический указатель класса на объект этого же класса - C++
Не пойму: что в этом коде не так? #include <iostream> #include <cstdlib> using namespace std; struct A { int x; ...

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

Построение описания класса, создание и уничтожение объектов этого класса - C++
Построить описание класса, содержащего информацию о почтовом адресе организации. Предусмотреть возможность раздельного изменения...

6
Croessmah
Ушел
Эксперт CЭксперт С++
13557 / 7707 / 872
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 3
Завершенные тесты: 1
07.12.2012, 21:54 #2
Цитата Сообщение от Вальдемар Посмотреть сообщение
Возможно кто нибудь знает, как при создании объекта внести размер массива?
В классе две переменные - указатель на объект и размер массива.
В конструкторе выделяете память динамически.
В деструкторе освобождаете память.
0
Вальдемар
-5 / 0 / 0
Регистрация: 29.07.2012
Сообщений: 61
07.12.2012, 21:57  [ТС] #3
Croessmah, а моно примерчик.
Если нетрудно.
0
Jupiter
Каратель
Эксперт С++
6561 / 3982 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
07.12.2012, 22:01 #4
Вальдемар, размер массива нужно изменять, или его размерность может быть постоянной?
0
Croessmah
Ушел
Эксперт CЭксперт С++
13557 / 7707 / 872
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 3
Завершенные тесты: 1
07.12.2012, 22:12 #5
Не заморачивался ни с чем. Просто как пример. В таких случаях еще нужен оператор присваивания и конструктор копирования, либо вообще их запретить.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 
struct A{
    A(int length){
        size=length<1?1024:length;
        pStr=new char[size+1];
        pStr[0]=pStr[size]=0;
    }
    ~A(){
        delete [] pStr;
    }
    int size;
    char *pStr;
};
 
int main(){
    A aa(16);
    strcpy(aa.pStr,"My name is Boris");
    std::cout<<aa.pStr;
    std::cin.get();
    return 0;
}
0
Вальдемар
-5 / 0 / 0
Регистрация: 29.07.2012
Сообщений: 61
07.12.2012, 22:18  [ТС] #6
Стоит ли выделять память динамически, если массив в моей програме должен хранить размер не привышающий 2 ечеек?
Возможно есть другой способ?

a("J");
a("10");

Или стоит?
0
Croessmah
Ушел
Эксперт CЭксперт С++
13557 / 7707 / 872
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 3
Завершенные тесты: 1
07.12.2012, 22:20 #7
Цитата Сообщение от Вальдемар Посмотреть сообщение
Стоит ли выделять память динамически, если массив в моей програме должен хранить размер не привышающий 2 ечеек?
тогда не вижу смысла, но, если хотите хранить строки, то не забудьте про '\0'
0
07.12.2012, 22:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.12.2012, 22:20
Привет! Вот еще темы с ответами:

Возможно ли создание объекта шаблонного класса в функции этого класса? - C++
Доброго времени суток, уважаемые форумчане :) Мне по лабам задали задание - реализовать шаблон контейнера (множество) с операциями...

Как сделать членом класса экземпляр этого же класса - C++
class Operation { public: bool type; //true = operation, false = number char Operator; Operation L_Op; Operation R_Op; ...

Может ли метод класса возвращать экземпляр этого же класса? - C++
такой вопрос, реально что бы функция класса имела тип класса(возвращала класс), то есть типа так: class c1{ c1 f1(); } если да, то...

Ошибка компиляции (преобразование объекта класса в объект другого класса) - C++
Друзья, добрый день! Не могу понять почему выдается ошибка компиляции... Прога преобразует доллары США в старые Британские фунты. Но...


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

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

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