Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
277 / 154 / 52
Регистрация: 30.06.2011
Сообщений: 1,701
1

Нужна ли функция?

20.03.2017, 19:58. Показов 272. Ответов 12
Метки нет (Все метки)

Приветствую всех! Чтобы занести данные в создаваемый класс можно написать функцию в этом классе, а можно сделать массив данных в классе доступным из вне и непосредственно в него заносить данные. Как лучше и правильнее сделать? Как бы сделали вы?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class A
{
 private:
 int Data[10];
 
 public:
 void SetData(int *d) { memcpy(Data, d, 10); }
};
 
class B
{
 public:
 int Data[10];
};
 
// Использование
int Array[10];
A a;
B b;
a.SetData(Array);      // Лучше так?
memcpy(b.Data, Array); // Или так лучше?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.03.2017, 19:58
Ответы с готовыми решениями:

нужна функция
В бассейне стандаратный вход (цена) за 8 евро, но если человек плавает дольше 3ч, то надо...

Нужна функция?
Для того, чтобы записать в базу данных, данные типа дата нужно написать '".time(2000-01-19)."' ?

Нужна Функция
Добрый вечер.Подскажите.Есть ли какая - нибудь функция получения сведений(состояние) о процессе.

нужна некая функция
вообщем есть цикл int a; do{ a=getch() ...... fun(a) ..... }

12
2411 / 1812 / 399
Регистрация: 15.12.2013
Сообщений: 7,835
20.03.2017, 20:09 2
Цитата Сообщение от d7d1cd Посмотреть сообщение
Как бы сделали вы?
Переписал бы это на C++.
5
277 / 154 / 52
Регистрация: 30.06.2011
Сообщений: 1,701
20.03.2017, 20:13  [ТС] 3
Цитата Сообщение от S_el Посмотреть сообщение
Переписал бы это на C++.
Покажите как переписали бы.
0
2411 / 1812 / 399
Регистрация: 15.12.2013
Сообщений: 7,835
20.03.2017, 20:19 4
d7d1cd, конструктор + std::vector<>/std::array<> как поле.
0
277 / 154 / 52
Регистрация: 30.06.2011
Сообщений: 1,701
20.03.2017, 20:44  [ТС] 5
Экземпляр моего класса должен сохранятся через функцию WriteFile и загружаться через ReadFile. Если вместо массива использовать вектор, то такой фокус не прокатит:
C++
1
2
3
A a;
...
WriteFile(iFile, &a, sizeof(a));
Не?
0
2411 / 1812 / 399
Регистрация: 15.12.2013
Сообщений: 7,835
20.03.2017, 21:38 6
Цитата Сообщение от d7d1cd Посмотреть сообщение
Не?
Не. В исходном сообщении об этом ни слова. Что это за функции?
0
nd2
3411 / 2791 / 1251
Регистрация: 29.01.2016
Сообщений: 9,426
21.03.2017, 06:38 7
Цитата Сообщение от d7d1cd Посмотреть сообщение
C++
1
a.SetData(Array); // Лучше так?
Лучше. Сокрытие данных класса.
1
277 / 154 / 52
Регистрация: 30.06.2011
Сообщений: 1,701
21.03.2017, 07:58  [ТС] 8
S_el, мне необходимо создать класс таким образом, чтобы его данные можно было сохранять в файл и загружать оттуда. Ясно, что можно для этого создать функцию в классе. Но проблема в том, что экземпляров такого класса будет несколько и все они будут объединены в одной структуре (а так же в этой структуре будут данные других типов) , которую удобно сохранять и загружать посредством файла.
0
992 / 679 / 308
Регистрация: 26.02.2015
Сообщений: 3,105
21.03.2017, 08:16 9
d7d1cd, может быть в структуре перегрузить операторы << и >>?
0
277 / 154 / 52
Регистрация: 30.06.2011
Сообщений: 1,701
21.03.2017, 08:47  [ТС] 10
Nishen, можно поподробнее об этом? Что дает такая перегрузка? И почему именно << и >>?
0
25 / 25 / 5
Регистрация: 04.01.2017
Сообщений: 52
21.03.2017, 10:04 11
Цитата Сообщение от d7d1cd Посмотреть сообщение
И почему именно << и >>?
Потому что именно их переопределяет библиотека ввода/вывода в C++ и переопределив их вы сможете использовать объекты класса как стандарнтые с использованием этих операторов.
0
techpriest
634 / 213 / 57
Регистрация: 27.02.2014
Сообщений: 1,180
21.03.2017, 10:38 12
Выбор интерфейса зависит от способа использования.
0
Форумчанин
Эксперт CЭксперт С++
8167 / 5015 / 1436
Регистрация: 29.11.2010
Сообщений: 13,455
21.03.2017, 12:51 13
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
#include <array>
#include <iostream>
 
class Foo
{
    static constexpr size_t N = 10;
    using container = std::array<int, N>;
 
public:
    constexpr Foo() : m_data() {}
    constexpr Foo(const container &a_cnt) : m_data(a_cnt) {}
    void set(const container &a_cnt) { m_data = a_cnt; }
    constexpr container get() const { return m_data; }
 
protected:
    container m_data;
};
 
int main()
{
    constexpr Foo f({1, 2, 3, 4, 5});
    for (const auto x : f.get())
        std::cout << x << " ";
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.03.2017, 12:51

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Нужна функция sha512
Подскажите, пожалуйста, функцию sha512 написанную на C++, принимающую массив байтов, и возвращающую...

Нужна функция в EXCEL
Здравствуйте . В логических функциях ноль. А очень нужно. Пожалуйста, помогите. Следующие...

Нужна обратная функция
Есть функция получающая некую переменную W, где W \in {1..81} Функция возвращает два числа z и q...

Нужна функция шифрования по ключу
Нужна функция шифрования по ключу, реализованная как на NodeJs, так и в Python. (Xor мне подходит,...


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

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

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