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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Описать функцию, возвращающую номер позиции, начиная с которой в строке S содержится К-ое вхождение подстроки http://www.cyberforum.ru/cpp-beginners/thread1021417.html
Ребят, плиз помогите, даже в условие не въезжаю((( Описать функцию PosK(S0,S,K) целого типа , возвращающую номер позиции, начиная с которой в строке S содержится К-ое вхождение подстроки S0 (К>0). Если количество вхождений S0 в строке S меньше K, то функция возвращает 0. Считать, что перекрывающихся вхождений подстрок S0 строка S не содержит. Вывести значения этой функции для пяти данных троек:...
C++ Строки. Посчитать количество запятых во введенной строке Во введенной строке заменить все пробелы на запятые, а запятые на точки. Посчитать количество запятых во введенной строке. Нужно написать программу. Заранее благодарен. http://www.cyberforum.ru/cpp-beginners/thread1021416.html
C++ Составьте программу на языке С++ для вычисления значения функции z=f(x,y) при заданных значениях х и у.
Здравствуйте, кому не сложно помогите решить задачи: Язык: C++, Среда разработки: Dev C++. 1. Составьте программу на языке С++ для вычисления значения функции z=f(x,y) при заданных значениях х и у. Z=f(x,y) z=\frac{sin(y{x}^2){+{e}^x}}{y{x}^2{+ln\left|x \right|}} Исходные данные X={-1;0;2;3;4;5;7}
Не могу присвоить C++
У меня есть массив структур, не знаю как присвоить char element целое слово. Если присвоить один символ, все работает как надо, но суть в том, что мне нужно вносить не по одному символу, а целое слово в переменную. #define dict_size 5 #include <iostream> #include <locale.h> using namespace std; struct celltype { char element;
C++ Применение цикла do-while http://www.cyberforum.ru/cpp-beginners/thread1021403.html
Здравствуйте. Хочу зациклить выполнение функции до тех пор, пока не будет выполнено условие, но не получается. Программа успешно компилируется, но результата нет. Подскажите, пожалуйста, в чем моя ошибка. В теле функции много расчетов, поэтому их приводить нет смысла. Думаю, что проблема в неправильном задании счетчика переменной с в цикле do-while. Принцип построения программы следующий: ...
C++ не запускается программа #include <stdio.h> #define MAX 100 #define LEN 255 char text; /* простейший текстовый редактор */ int main(void) { register int t, i, j; for (t=0; t<MAX; t++) подробнее

Показать сообщение отдельно
helloy
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 46
29.11.2013, 13:26     Включите в класс Met функцию bool moved(), которая получает результат вызова pointer() и сообщает, был ли перемещен указатель
Включите в класс 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 минут
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 13:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru