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

clas Char_vec - C++

Восстановить пароль Регистрация
 
Gepar
 Аватар для Gepar
1173 / 529 / 20
Регистрация: 01.07.2009
Сообщений: 3,508
08.10.2011, 14:53     clas Char_vec #1
Решаю тут задачки Страуструпа и наткнулся на вот такую:
Код
Рассмотрим: 
class Char vec 
{ 
int sz; 
char element [ 1 ] ; 
public: 
static Char_vec* new char vec {int s) ; 
char& operator [] (int i) { return element [i] ; } 
}; 

Определите new char vec (), выделяющую непрерывную память для Char vec 
таким образом, чтобы доступ к элементам мог осуществляться по индексу  
через element. При каких обстоятельствах этот трюк может вызвать серьезные 
проблемы?
Но что-то я не понял как же её решать, ведь у нас фиксированный размер element изначально, а Страуструп хочет чтобы мы потом могли к i элементу обращаться, можно бы было использовать realoc, но ведь element это не указатель и новый адрес ему не присвоить ... в общем пишите Ваши варианты, моежет кто уже решал эту задачку
Я немного модифицировал класс и у меня получилось такое
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
#include <iostream>
using namespace std;
 
class Char_vec
{
    int sz;
    char *element;
 
public:
        Char_vec(int size):sz(size){element=new char[sz];}
        static Char_vec* new_char_vec (int s);
        char& operator[] (int i){return element[i];}
};
 
Char_vec* Char_vec::new_char_vec (int s)
{
    Char_vec *temp=new Char_vec(s);
    return temp;
}
 
int main()
{
    Char_vec test(2);
    Char_vec *test2;
    test2=test.new_char_vec(10);
    (*test2)[9]='X';
    cout<<(*test2)[9];
 
}
Но не думаю что это то что хотел Страуструп ...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.10.2011, 14:53     clas Char_vec
Посмотрите здесь:

PHP не могу найти clas в коде php

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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