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

Безопасный массив - C++

Восстановить пароль Регистрация
 
Avicii
 Аватар для Avicii
2 / 2 / 0
Регистрация: 01.12.2012
Сообщений: 123
22.04.2013, 17:16     Безопасный массив #1
Здравствуйте,помогите пожалуйста,как подстроить данную программу под безопасный массив (контроль границ).Своими силами не получается.Заранее благодарю.
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
#include <iostream>
#include <cmath>
using namespace std;
class samp {double a;
            public:
            double put_a (double n)
            {a=n;}
            double get_a()
             {if(a>10)
                {return (a=1);}
                  if (a<=10)
                   {return (a=round(a));}
             }
            };
int main()
{samp M[10];
double B[10];
int i;
cout<<"Vvedite massiv M[10]: ";
for (i=0;i<10;i++)
cin>>B[i];
for (i=0;i<10;i++)
M[i].put_a(B[i]);
for (i=0;i<10;i++)
cout<<M[i].get_a()<<" ";
return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
22.04.2013, 17:20     Безопасный массив #2
Не знаю, что такое безопасный массив, по идее и обычный безопасен.
Цитата Сообщение от Avicii Посмотреть сообщение
массив (контроль границ)
. Это называется ограниченный массив, читай Шилдта.
Tulosba
:)
Эксперт C++
4377 / 3220 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
22.04.2013, 17:33     Безопасный массив #3
Avicii, используйте std::vector и функцию at() и будет Вам безопасный массив.
Avicii
 Аватар для Avicii
2 / 2 / 0
Регистрация: 01.12.2012
Сообщений: 123
23.04.2013, 09:25  [ТС]     Безопасный массив #4
Цитата Сообщение от taras atavin Посмотреть сообщение
Не знаю, что такое безопасный массив, по идее и обычный безопасен.
. Это называется ограниченный массив, читай Шилдта.
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
33
34
35
#include <iostream.h>
#include <stdlib.h>
class array {
int size;
char *p;
public:
array (int num)
 
~array (){delete[]p;}  // почему здесь ошибка и какая?
 
char&put(int i)
char get(int i)};
array::array (int num )
{p=new char[num];
if(!p)
{cout<<"oshibka"
exit(1);}
size=num;}
 
char & array::put(int i)
{if(i<0 ll i>=size)
{cout<<"naryshenie graniz",exit(1);}
return p[i];}
char array :: get(int i)
{if(i<0 ll i>=size)
{cout <<"oshibka v narushenii graniz",exit(1);}
return p[i];
}
int main()
{array a(10);
a.put(3)='x';
a.put(2)='r';
cout<<a.get(3)<<a.get(2)<<"\n";
a.put(11)='!';
return 0;}
Вот пример безопасного массива с контролем границ
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
23.04.2013, 09:31     Безопасный массив #5
Цитата Сообщение от Avicii Посмотреть сообщение
array (int num)
~array (){delete[]p;} *// почему здесь ошибка и какая?
после заголовка конструктора надо или точку с запятой поставить, а потом отдельно array::array (int num) и тело конструктора, или сразу тело конструктора.
Yandex
Объявления
23.04.2013, 09:31     Безопасный массив
Ответ Создать тему
Опции темы

Текущее время: 11:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru