Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
helloy
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 46
#1

Включите в класс Met функцию bool moved(), которая получает результат вызова pointer() и сообщает, был ли перемещен указатель - C++

29.11.2013, 13:26. Просмотров 243. Ответов 1
Метки нет (Все метки)

Включите в класс Met функцию bool moved(), которая получает результат вызова pointer() и сообщает, был ли перемещен указатель (вследствие перераспределения памяти).
Напишите функцию main() для тестирования функции moved().

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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#include <iostream>
#include <string>
using namespace std;
typedef unsigned char byte;
 
class Mem{
    byte*mem;
    int size;
    void ensureMinSize(int minSize);
public:
    Mem(int sz=0);
    ~Mem();
    int msize();
    byte* pointer(int minSize=0);
};
 
 
class MyString {
    Mem*buf;
public:
    MyString();
    MyString(char *str);
    ~MyString();
    void concat(char*str);
    void print(ostream &os);
    bool moved();
};
 
 
Mem::Mem(int sz){
    mem=0;
    size=0;
    ensureMinSize(sz);
}
    
Mem::~Mem(){ delete []mem;};
int Mem::msize(){return size;};
 
 
void Mem::ensureMinSize(int minSize){
    if(size < minSize) {
        byte*newmem=new byte[minSize];
        memset(newmem+size,0,minSize-size);
        memcpy(newmem,mem,size);
        delete[]mem;
        mem=newmem;
        size=minSize;
    }
}
 
byte* Mem::pointer(int minSize){
    ensureMinSize(minSize);
    return mem;
}
 
 
 
 
 
 
    MyString::MyString(){
        buf=0;
        
    }
 
    MyString::MyString(char *str){
        if(!*str){
            buf=0;
            return;
        }
        buf=new Mem(strlen(str)+1);
        strcpy((char*)buf->pointer(),str);
    
    }
 
    MyString::~MyString(){
        delete buf;
    }
 
    void MyString::concat(char*str){
    if(!buf) buf=new Mem;
    strcat((char*)buf->pointer(buf->msize()+strlen(str)+1),str);
    }
 
    void MyString::print(ostream &os){
        if(!buf) return;
        os<<buf->pointer()<<endl;
        
    }
 
    bool MyString::moved(){ 
        /* как реализовать? */
 
        return true;
    }
 
 
 
int main(){
    
    MyString s("My test string");
    s.print(cout);
    s.concat(" some additional stuff");
    s.print(cout);
 
    MyString s2;
    s2.concat("Using default constructor");
    s2.print(cout);
    return 0;
}
Добавлено через 12 часов 48 минут


Добавлено через 8 часов 20 минут


Добавлено через 14 часов 36 минут
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.11.2013, 13:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Включите в класс Met функцию bool moved(), которая получает результат вызова pointer() и сообщает, был ли перемещен указатель (C++):

Создать функцию, которая на вход получает строку символов, сообщает количество вхождений каждой цифры в строку... - C++
Создать функцию, которая на вход получает строку символов, сообщает количество вхождений каждой цифры в строку и в случае, если цифр 5, 6,...

Функция, получающая указатель на обычную функцию, получает указатель на метод класса - C++
Здравтсвуйте. Имеется вопрос по указателям на методы класса. Допустим, есть функция( f ), которая принимает указатель на функцию и...

Как сделать функцию, возвращающую указатель на функцию (которая в свою очередь возвращает указатель на массив) - C++
Изучаю c++ по одной книжке.Она говорить не умеет.. Так вот понадобилось написать функцию,которая как параметр получает указатель на...

Можно ли обращаться к методам и свойствам работающего потока, который был перемещен - C++ Qt
class main { public: ThreadNEW *threadNEW = new ThreadNEW(); void stop() { ...

Указатель на привязанную функцию можно использовать только для вызова функции - C++
int ident=mflats.at(1).GetIdent; Объясните пожалуйста, почему нельзя использовать такую форму? (функции Int, возвращает нужное мне...

Деревья С++ (функция, которая получает указатель на корень дерева и возвращает длину самой длинной ветки на дереве) - C++
Здравствуйте! Помогите, пожалуйста, в написании функции ,которая получает указатель на корень дерева и возвращает длинну самой длинной...

1
Raali
623 / 327 / 34
Регистрация: 06.07.2013
Сообщений: 1,068
Завершенные тесты: 1
29.11.2013, 13:37 #2
вопрос то в чем заключается?
в посте вижу только цитированное задание
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.11.2013, 13:37
Привет! Вот еще темы с ответами:

Написать программу, которая получает трехзначное число, “переворачивает” его и выводит результат в консоль - C++
Двух кратное переварачивает а трёх нет как только не пробовал подскажите вот мой код #include &lt;iostream&gt; using namespace std; void...

Написать функцию которая может читать цифры с 1-го до n-го элемента в массиве (используя pointer) - C++
Написать функцию которая может читать цифры с 1-го до n-го элемента в массиве и выводит их. Примичание использовать pointer. Ввод: ...

Написать программу, которая получает два трехзначных числа, меняет у них местами средние цифры и выводит результат в консоль - C++
#include &lt;iostream&gt; using namespace std; void main() { int num = 0; int num2 = 0; cout &lt;&lt; &quot;Enter xxx number&quot;; cin &gt;&gt;...

Написать функцию, которая получает дату и выводит название праздника - C++
Написать функцию, которая получает дату (день, месяц) и выводит название праздника, выпадающего на этот день (например, 7.01 - Рождество,...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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