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

Шаблонный класс динамический вектор - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Использование функция для решения задачи http://www.cyberforum.ru/cpp-beginners/thread1155565.html
Добрый вечер, подскажите в чем ошибка в коде. #include "stdafx.h" #include <stdio.h> #include <time.h> #include <stdlib.h> int i,j; int matrix(int **A,int **B,int **C,int rows,int cols ) { for (i=0;i<rows;i++)
C++ Удалить из текста все символы, которые не являются буквами Удалит из текста все символы, которые не являются буквами латинского алфавита или кириллицы http://www.cyberforum.ru/cpp-beginners/thread1155527.html
Строковый калькулятор C++
добрый вечер) Помагите написать строковый калькулятор, понятия не имею как это делать. вот что то похожее надо набрать
C++ Архитектура правильного определения и объявления класса
Всем привет! В процессе написания одной программы "поймал" себя на том, что видимо не до конца понимаю логику правильного определения и объявления класса. Использую для этого бинарную структуру из заголовочного файла + файла с определением. //файл Class.h class Class { public: void func(); }; //файл Class.cpp
C++ Как узнать последнее значение массива http://www.cyberforum.ru/cpp-beginners/thread1155506.html
Добрый день форумчане. Прошу помочь с проблемкой. Мой код: #include <iostream> Using namespace std; Int main() { Char a; Cin>>a; Cout<<"Последнее веденное число"<<КОД;
C++ Отображение содержимого вектора в VS Здоровеньки булы. При отладке в visual studio можно посмотреть содержимое объектов. Если открыть для просмотра вектор, как на рисунке, то видно содержание каждой ячейки его массива, размер и ёмкость. Вот только В самом векторе нет переменных size и capasity, а значение пользовательского массива не показывается, ограничившись значением нулевого элемента. Можно ли настроить такое поведение среды... подробнее

Показать сообщение отдельно
himbeere
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 3
23.04.2014, 20:33     Шаблонный класс динамический вектор
Создала шаблонный класс одномерный динамический массив. Нужно заполнить массив числами какими-нибудь.
Объявила данные и методы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
template <class T>
class Exm
{
protected:
    T *mas;
    int len;
public:
    Exm(); //конструктор
    Exm(int ln);
    Exm(const Exm <T> & prm); //копирующий конструктор
    ~Exm(); //деконструктор
    void print(TListBox *ListBox1) const;
    void Exm:: prisv(const Exm& m);
    T* Exm::fullV(); //заполнение массива
};
Инициализация конструкторов:
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
27
28
29
30
31
32
        template <class T>
    Exm <T>::Exm()
    {
        len = 5;
                mas = new T[len];
    }
 
        template <class T>
    Exm <T>::Exm(int ln)
    {
                len = ln;
                mas = new T[len];
    }
 
        template <class T>
        Exm <T>::Exm(const Exm& prm)
        {
                        T *x=prm.mas;
                        len = prm.len;
                        this->mas=new T [len];
                        for (int i=0; i<len; i++)
                        * (this->mas+i) =* (x+i) ;
                        delete [] x;
        }
 
        template <class T>
        void Exm <T>:: print(TListBox *ListBox1) const
    {
                for (int i=0; i<len; i++)
        ListBox1->Items->Add(IntToStr(mas+i));
        ListBox1->Items->Add("");
    }
Таким образом при выводе, например переменных конструктора по умолчанию
C++
1
2
3
4
5
Exm <float> s1,s2,s3;
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   s1.print(ListBox1);
}
Выводятся одни единицы.
Создала функцию для заполнения массива числами:

C++
1
2
3
4
5
6
7
8
         template <class T>
         T* Exm <T>::fullV()
         {
                mas = new T[len];
                for (int i=0; i<len; i++)
                mas[i] = rand()%10;
                return mas;
         }
И вызываю ее в конструкторе по умолчанию:
C++
1
2
3
4
5
6
7
        template <class T>
    Exm <T>::Exm()
    {
        len = 5;
                //mas = new T[len];
                fullV();
    }
Но, естественно, не работает, ошибку не выдает при компиляции, но выводит так же одни единицы. Помогите сделать заполнение массива, пожалуйста!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru