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

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

Войти
Регистрация
Восстановить пароль
 
velodro
72 / 1 / 1
Регистрация: 28.11.2009
Сообщений: 78
#1

Вопрос по классам - C++

05.12.2009, 14:09. Просмотров 716. Ответов 11
Метки нет (Все метки)

создал конструктор, который создаёт элемент класса - массив, а вот инициализация данного массива с помощью нового конструктора не удаётся...
подскажите пожалуйста - как инициализировать-то

вот создание массива:

C++
1
2
3
4
5
6
7
class Test {
public:
    int *massive;
    Test(int size) {
        massive=new int[size];
    }
};
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.12.2009, 14:09     Вопрос по классам
Посмотрите здесь:

Вопрос по классам - C++
Есть такой код #include <iostream> class C1{ public: C1(){std::cout <<" 1 is open"<<std::endl;}; ~C1(){std::cout <<" 1...

Вопрос по классам - C++
Вообщем есть два класса, TTriangular и TPoint. В TTriangular есть метод, который должен вводить координаты заданной точки. В TPoint...

Вопрос по Классам... - C++
#include <iostream> using std::cout; using std::endl; class GradeBook { public: void displayMessage()

Вопрос по классам - C++
Опишу определение базавого класса и производного class Date { private: ... public: Date( ){}; ...

Вопрос по классам и функциям - C++
Здравствуйте, вообщем мне надо реализовать примерно такое дело: имеется класс the_class нужно чтобы у каждого экземпляра была...

У меня вопрос по классам. На приложенных картинках я выделил непонятные строки. - C++
У меня вопрос по классам. На приложенных картинках я выделил непонятные строки. Строка 9. Переменная int age объявляется в строке 9?...

Программа по классам - C++
Всем доброго времени суток, обращаюсь с просьбой помощи! = ) Нужно написать программу в которой: 1) Создать класс 2) Создать...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Sekt
156 / 155 / 10
Регистрация: 29.04.2009
Сообщений: 637
05.12.2009, 15:25     Вопрос по классам #2
Добавте цикл-внутрь
Gravity
562 / 556 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
05.12.2009, 16:08     Вопрос по классам #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Test {
    private:
        int *a;
        int size;
    public:
        Test(int n)
        {
            size = n;
            a = new int[size];
            // инициализация нулем
            for(int i = 0; i < size; i++)
                a[i] = 0;
        }
};
velodro
72 / 1 / 1
Регистрация: 28.11.2009
Сообщений: 78
05.12.2009, 19:47  [ТС]     Вопрос по классам #4
а если двухмерный массив?
Rififi
2338 / 1053 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
05.12.2009, 19:53     Вопрос по классам #5
velodro,

создал конструктор, который создаёт элемент класса - массив, а вот инициализация данного массива с помощью нового конструктора не удаётся...

massive = new int [size] ();

а если двухмерный массив?

хоть десятимерный.
velodro
72 / 1 / 1
Регистрация: 28.11.2009
Сообщений: 78
05.12.2009, 20:16  [ТС]     Вопрос по классам #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Test {
    private:
        int **a;
        int size1;
        int size2;
    public:
        Test(int n)
        {
            size1 = n;
            size2 = n;
            *a = new int[size1];
            for (int i=0; i<size1; i++) a[i]=new int[size2]
            // инициализация нулем
            for(int i = 0; i < size1; i++)
                for(int j = 0; j < size2; j++)
                    a[i][j] = 0;
        }
};
не пашет....
Rififi
2338 / 1053 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
05.12.2009, 20:22     Вопрос по классам #7
velodro,

не пашет....
потому что неправильно инициализируешь. я наблюдаю вопиющую безграмотность при работе с двойным указателем

надо бы тебе книжку почитать... (((Ж

для начала нужно так:
a = new int* [size1];
Vladimir.
155 / 155 / 10
Регистрация: 24.11.2009
Сообщений: 375
05.12.2009, 20:22     Вопрос по классам #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class SquareMatrix
{
      private:
              double** matrix;
              int dimm;
              void Create()
              {
                   matrix = new double* [dimm];
                   for (int i=0; i<dimm; i++)
                       matrix[i]= new double [dimm];
              }
      public:
             SquareMatrix(int n): dimm(n) {Create();}
             ~SquareMatrix()
             {
                   for (int i=0; i<dimm; i++)
                       delete[] matrix[i];
                   delete[] matrix;
             }
             
             double &E(int i, int j) 
             {
                 return matrix[i][j]; // E(lement)
             }
                
};
пример обращения (заполнение рандомными числами..):
C++
1
2
3
4
5
6
7
8
int main()
{
    int dimm = 10; 
    SquareMatrix M(dimm); 
    for (int i=0; i<dimm;i++)
        for (int j=0;j<dimm;j++)
            M.E(i,j) = rand()%100;
}
velodro
72 / 1 / 1
Регистрация: 28.11.2009
Сообщений: 78
05.12.2009, 21:01  [ТС]     Вопрос по классам #9
спасибо большое всем участникам обсуждения!

Добавлено через 23 минуты
скажите, а создать аналогичный массив КАК ЭЛЕМЕНТ КЛАССА можно через конструктор копирования или конструктор копирования копирует только объекты класса?
Vladimir.
155 / 155 / 10
Регистрация: 24.11.2009
Сообщений: 375
05.12.2009, 21:55     Вопрос по классам #10
Цитата Сообщение от velodro Посмотреть сообщение
скажите, а создать аналогичный массив КАК ЭЛЕМЕНТ КЛАССА можно через конструктор копирования или конструктор копирования копирует только объекты класса?
Я к вечеру думаю медленно, возможно поэтому не понимаю: чего именно Вы хотите получить?
Если вам нужен новый класс, который будет иметь "элементом класса" массив, то вам нужно наследовать от существующего класса.

Если вы хотите получить объект аналогичный уже существующему объекту, то вам нужен конструктор копирования..
velodro
72 / 1 / 1
Регистрация: 28.11.2009
Сообщений: 78
05.12.2009, 22:04  [ТС]     Вопрос по классам #11
нужно чтобы в том же классе была матрица с такой же размерностью но с другими элементами...
реально ли это?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.12.2009, 22:21     Вопрос по классам
Еще ссылки по теме:

Программа по классам - C++
Нужна помощь по классам, помогите с написание кода Описать класс, реализующий стек и работу с ним. 1.) Класс должен содержать следующие...

от структур к классам - C++
Добрый вечер. Помогите пожалуйста разобраться в классах, только начал их изучать. Есть задание переделать структуру в класс ну и сделать...

учебник по классам - C++
Люди, подскажите, пожалуйста, где можно найти хороший учебник по классам с примерами задач

Лабораторные по классам - C++
С абсолютно не знаю, поэтому пришел сюда за помощью. Лабораторная 1 Описать базовый класс «Элемент». Поля: - имя элемента...

лабораторная по классам - C++
Доброго вечера ув. гуру. Очень прошу вас помочь написать небольшую программу, связанной с великим ООП, а конкретнее работой с классами....


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

Или воспользуйтесь поиском по форуму:
Vladimir.
155 / 155 / 10
Регистрация: 24.11.2009
Сообщений: 375
05.12.2009, 22:21     Вопрос по классам #12
да, конечно. Вы же можете объявить две переменных типа char, главное, чтоб имена не совпадали, точно так же и для массивов.
будет что-то вроде:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Test {
    private:
        int *a;
        int *b;
        int size;
    public:
        Test(int n)
        {
            size = n;
            a = new int[size];
            // инициализация нулем
            for(int i = 0; i < size; i++)a[i] = 0;
                
            b = new int[size];
            for(int i = 0; i < size; i++) b[i] = 0;
                
        }
};
PS: если в вашем классе два массива хранят идентичные матрицы, логично сделать класс описывающий такие матрицы...
Yandex
Объявления
05.12.2009, 22:21     Вопрос по классам
Ответ Создать тему
Опции темы

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