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

Указатели и конструкторы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Реализовать класс вместо структуры http://www.cyberforum.ru/cpp-beginners/thread438885.html
Здравстуйте буду благодарен если кто-то поможет. Вот само задание: создать программу по индивидуальному варианту, которая: 1.1. открывает внешний файл Input.txt и считывает с него данные согласно индивидуальным заданием; 1.2. запоминает полученные данные в виде класса; 1.3. сортирует данные структуры за числовым полем любым методом сортировки; 1.4. записывает полученные результаты...
C++ Построение таблиц идентификаторов (хеш-функции, рехеширование) построить таблицу идентификаторов методом хэш-функции, использование метода рехеширования. http://www.cyberforum.ru/cpp-beginners/thread438884.html
C++ Программа для вычисления суммы ряда
Составить программу для вычисления суммы данного ряда для указанного значения аргумента х, если известна количество N членов ряда. \sum_{k-1}^{N}{e}^{kx}{\cos }^{2}kx N=10 x=2,1
C++ Перегруженные функции
Перегруженные функции Написать перегруженные функции и основную программу, которая их вызывает. а) для преобразования десятичной дроби в обыкновенную; б) для преобразования обыкновенной дроби в десятичную. Помогите с написанием кода пожалуйста,а то никак не пойму.
C++ Программа для вычисления функции http://www.cyberforum.ru/cpp-beginners/thread438869.html
Состивить программу для вычисления функции y\begin{cases}a{x}^{2}+b\sqrt{x}+c & \text{ if } x=> 5 \\ \pi \arcsin x & \text{ if } x< 5 \end{cases} a=2,3 b=4,1 c=6 Помогите пожалуйста
C++ Линейная программа Известны меньшее основание "а" равнобокой трапеции, ее высота h и острый угол альфа. Найти периметр Р и площадь S трапеции. подробнее

Показать сообщение отдельно
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
01.02.2012, 00:44
1. отсутствует конструктор копии(из-за чего проблема и возникла) и оператор присваивания
2. конструкторы
ваш
Цитата Сообщение от stawerfar Посмотреть сообщение
C++
1
2
3
4
5
6
7
metring::metring(void):imax_fmas(1)
{
    setlocale(LC_ALL,"Russian");//разрешаю вывод Русского языка
    ch_pt = new char[2];//первый раз выдиляю память под строку
    ch_pt[0]='\0';//принудительное указаник конца строки
    fmas = new float[imax_fmas];//создаём подходящий по размерам массив для чисел
}

мой
C++
1
2
3
4
5
metring::metring(void) : imax_fmas(1)
{
    ch_pt = new char[imax_fmas + 1]();
    fmas = new float[imax_fmas];//создаём подходящий по размерам массив для чисел
}


ваш
Цитата Сообщение от stawerfar Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//конструктор содним параметром
metring::metring(char* ch_c)
{
setlocale(LC_ALL,"Russian");//разрешаю вывод Русского языка
 ch_pt = new char[2];//первый раз выдиляю память под строку
 ch_pt[0]='\0';//принудительное указаник конца строки
 imax_fmas=1;
 fmas = new float[imax_fmas];//создаём подходящий по размерам массив для чисел * 
if(strlen(ch_c)>1)
 {delete []ch_pt;}//освобождаю ранее выделенную память т.к. она не достаточна для хранения новой строки 
 ch_pt = new char [strlen(ch_c)+1];
 ch_pt[0]='\0';//принудительное указаник конца строки
 strcpy(ch_pt,ch_c);
 ch_pt[strlen(ch_c)]='\0';//принудительное указаник конца строки
}

мой
C++
1
2
3
4
5
6
7
8
//конструктор содним параметром
metring::metring(const char* ch_c)
{
    imax_fmas = 1;
    fmas = new float[imax_fmas];//создаём подходящий по размерам массив для чисел * 
    ch_pt = new char [strlen(ch_c)+1]();
    strcpy(ch_pt, ch_c);
}

setlocale достаточно вызвать один раз в main
3.
Цитата Сообщение от stawerfar Посмотреть сообщение
metring:: operator float*(void)
оператор привидения типа должен только приводить тип, а он у вас ещё какую-то фигню делает
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru