Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.62/21: Рейтинг темы: голосов - 21, средняя оценка - 4.62
18 / 18 / 2
Регистрация: 16.12.2010
Сообщений: 145
1

Использование псевдопеременных: bd (3,5) = s, где bd - база данных, s - элемент базы данных, тогда с 3 по 5 элементы базы данных заменить на элемент s.

18.10.2011, 21:30. Просмотров 3794. Ответов 4
Метки нет (Все метки)

всем доброго времени суток! есть у меня класс bd, массив элементов этого класса table[n], а вот сам метод:
C++
1
2
3
4
5
6
7
8
    int copyTable(int a, int b)
    {
        int i,j;
        bd table[n];
        for (a-=1; a<b; a++)
            table[a]=table[j];
        return 0;
    }
суть метода состоит в том, чтобы заменять элементы bd от а до b элементом table[j].
вызов метода происходит что-то типа:
C++
1
table[j].copyTable(1,2);
так вот я не понимаю как сопоставить эти table[j], тоесть чтобы при вызове метода таким способом он понимал, что заменять нужно на тот элемент, из-под которого вызывали (если можна так выразиться).

в идеале задание звучит так:
Использование псевдопеременных: bd (3,5) = s, где bd - база данных, s - элемент базы данных, тогда с 3 по 5 элементы базы данных заменить на элемент s.
если кто подскажет как сделать через присваивание буду весьма благодарен

Добавлено через 21 час 35 минут
никто не знает?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.10.2011, 21:30
Ответы с готовыми решениями:

Не открывается база данных Access , пишет неразпознаваемый формат базы данных
Не открывается база данных Access , пишет неразпознаваемый формат базы данных,что делать

Подсобите примерами - база данных без базы данных
Доброго времени суток! Есть следующая задача - курсовой по программированию с использованием баз...

Пропадает 1 элемент из базы данных
&lt;?php $host = &quot;localhost&quot;; $db_name = &quot;data&quot;; $login = &quot;admin&quot;; $password...

При открытии базы данных FoxPro в приложение Delphi возникает ошибка драйвера внешней базы данных (8961)
При открытии базы данных FoxPro в приложение Delphi возникает ошибка драйвера внешней базы данных...

4
Каратель
Эксперт С++
6586 / 4007 / 400
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
18.10.2011, 21:37 2
Цитата Сообщение от 77Bender77 Посмотреть сообщение
заменять элементы bd от а до b элементом table[j].
как можно заменять элементы bd? bd - класс, а не объект!!!

Цитата Сообщение от 77Bender77 Посмотреть сообщение
так вот я не понимаю как сопоставить эти table[j], тоесть чтобы при вызове метода таким способом он понимал, что заменять нужно на тот элемент, из-под которого вызывали (если можна так выразиться).
ничерта не ясно что вы хотите сделать
0
18 / 18 / 2
Регистрация: 16.12.2010
Сообщений: 145
18.10.2011, 22:31  [ТС] 3
Цитата Сообщение от Jupiter Посмотреть сообщение
как можно заменять элементы bd? bd - класс, а не объект!!!
элемент=объект, если так понятней

Цитата Сообщение от Jupiter Посмотреть сообщение
ничерта не ясно что вы хотите сделать
есть например такой вот метод в классе bd, который заменяет элементы bd (table[0], table[1] и т.д., которые в методы описаны как table[а]) на какойто другой элемент table[j] (который в методе так и описан):
C++
1
2
3
4
5
6
7
8
int copyTable(int a, int b)
        {
                int i,j;
                bd table[n];
                for (a-=1; a<b; a++)
                        table[a]=table[j];
                return 0;
        }
я вызываю этот метод например так:
C++
1
table[j].copyTable(1,2);
и эти table[j] в описании метода и вызове метода соответствовать должны. вот я не понимаю как описать в методе это соответствие!
тоесть если бы я вызывал метод так:
C++
1
tableТ.copyTable(1,2);
то уже этот tableТ (который, кстати, тоже является объектом класса bd) соответствовал table[j] в методе

Добавлено через 8 минут
вот мне помогли на другом форуме, только без комментов. может кто разберется?

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
    #include <iostream>
     
    struct StructT;
     
    struct Proxy
    {
        StructT & ref;
        int i;
        int j;
        Proxy(StructT & arg, int a, int b): ref(arg), i(a), j(b)
        {}
     
        StructT & operator= (double arg)
        {
            std::cout << "Proxy (" << i << ", " << j << ")::" << "operator=(" << arg << ")\n";
            return ref;
        }
    };
     
    struct StructT
    {
        Proxy operator()(int i, int j)
        {
            std::cout << "operator()(" << i << ", " << j << ")\n";
            return Proxy(*this, i, j);
        }
    };
     
    int main()
    {
        StructT bd;
        bd(3,5) = .5;
        return 0;
    }
0
3050 / 1455 / 492
Регистрация: 29.11.2010
Сообщений: 2,888
18.10.2011, 23:53 4
Может так?
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
#include <iostream>
#include <string>
#include <vector>
#include <iterator>
 
class Field {
 public:
  Field(const std::string &value) : value_(value) {}
  std::string getValue() const { return value_; }
  void setValue(const std::string &value) { value_ = value; }
 private:
  std::string value_;
};
 
class Record {
 public:
  Record() {}
  void add(const Field &field) { fields_.push_back(field); }
  Field &operator[](size_t i) {
    return fields_[i];
  }
  size_t size() const { return fields_.size(); }
 private:
  std::vector<Field> fields_;
};
 
class MyRecord : public Record {
 public:
  MyRecord(const std::string &value) {
    add(value);
  }
};
 
template <class IteratorBegin, class IteratorEnd>
class RecordsRange {
 public:
  RecordsRange(IteratorBegin begin, IteratorEnd end)
    : begin_(begin), end_(end) {}
  Record operator=(const Record &record) {
    IteratorBegin  i = begin_;
    while (i != end_)
      *i++ = record;
    return record;
  }
 private:
  IteratorBegin begin_;
  IteratorEnd end_;
};
 
class Table {
 public:
  typedef RecordsRange<std::vector<Record>::iterator, std::vector<Record>::iterator>
    RangeOfRecords;
  void add(const Record &record) {
    data_.push_back(record);
  }
  RangeOfRecords operator()(size_t begin, size_t end) {
    return RangeOfRecords(data_.begin() + begin, data_.begin() + end);    
  }
  Record &operator[](size_t i) {
    return data_[i];
  }
  size_t size() const { return data_.size(); }
 private:
  std::vector<Record> data_;
};
 
int main(int argc, char *argv[]) {
  Table table;
  table.add(MyRecord("One"));
  table.add(MyRecord("Two"));
  table.add(MyRecord("Three"));
  table.add(MyRecord("Four"));
  table(1, 3) = MyRecord("Dumb");
  
  for (size_t i = 0; i < table.size(); ++i) {
    std::cout << table[i][0].getValue() << std::endl;
  }
}
2
18 / 18 / 2
Регистрация: 16.12.2010
Сообщений: 145
26.10.2011, 19:13  [ТС] 5
поднимаю тему)

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
class Abc
{
public:
string a1;
string a2;
friend Abc & operator () (int i, int j);
friend Abc & operator = (Abc & obj1, Abc & obj2);
};
 
Abc & operator () (int i, int j) 
    {
        return (i, j);
    }
 
Abc & operator = (Abc & obj1, Abc & obj2)
    {
    for (i-=1; i<j; i++)
         {
       obj1[i].a1=obj2.a1;
           obj1[i].a2=obj2.a2;
         }
           return obj1[i];
    }
 
int main ()
{
Abc bd[10];
Abc s;
 
bd (3,5) = s;
 
return 0;
}
это мои очередные попытки осуществить задание. далеко от "правды" ?
bd[i] соответствует obj1[i], s соответствует obj2
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.10.2011, 19:13

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Восстановить поврежденный файл базы данных SQLite (сделать дамп запароленного файла базы данных)
Вообщем не понятно после чего перестал открываться файл базы данных с ошибкой - &quot;database disk...

Заполнение базы данных используя элемент combobox
Доброго времени суток. Подскажите пожалуйста код для заполнение базы данных используя элемент...

Создание базы данных, открытие из под одной базы данных MS Access
Здравствуйте. В общем, C# начал заниматься только вот и сразу была поставлена задача создать базу...


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

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

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