Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 04.11.2018
Сообщений: 76
1

Конструктор и set -функции

07.11.2018, 18:30. Показов 1224. Ответов 5
Метки нет (Все метки)

Всем привет. Можете помочь понять для чего нужно в одном классе обьявлять конструктор и создавать set- функции ведь и то и другое инициализирует
0

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

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.11.2018, 18:30
Ответы с готовыми решениями:

Конструктор для std::set
struct TrainFilterCompany { TrainFilterCompany ( const set<string> & companies ) :...

Как сделать конструктор копирования, и реализовать set и get?
написал код но не совсем так как нужно по условию по условию нужно: В классе должны быть наборы...

Классы. Программирование алгоритмов с использованием конструктора, деструктора, friend - функции инициализации set() и функции вывода результатов pri
Братаны, выручайте! Общая постановка. Пользовательский класс Х должен содержать необходимые...

Классы. Программирование алгоритмов с использованием конструктора, деструктора, friend - функции инициализации set() и функции вывода результатов prin
Братаны, выручайте!:help: Общая постановка. Пользовательский класс Х должен содержать необходимые...

5
1006 / 692 / 310
Регистрация: 26.02.2015
Сообщений: 3,148
07.11.2018, 18:43 2
Конструктор инициализирует поля, а сеттеры присваивают полям новые значения. Инициализация != присвоение.
1
1124 / 1035 / 160
Регистрация: 19.02.2010
Сообщений: 3,141
07.11.2018, 20:30 3
Конструктор - для всех полей сразу (даже если ему передаются инициализирующие значения не для всех полей - остальным полям он выставит значения по-умолчанию или как-то зависящие от переданных ему аргументов).
Сеттеры - для отдельных полей.
Ну и семантика/смысл сущности, под которую пишем класс, не всегда может требовать наличия/использования сеттеров (т.е. сеттеры иногда можно и не писать).
0
1006 / 692 / 310
Регистрация: 26.02.2015
Сообщений: 3,148
07.11.2018, 20:41 4
Конструктор инициализирует поля, а сеттеры присваивают полям новые значения. Инициализация != присвоение.
Цитата Сообщение от VTsaregorodtsev Посмотреть сообщение
Конструктор - для всех полей сразу (даже если ему передаются инициализирующие значения не для всех полей - остальным полям он выставит значения по-умолчанию или как-то зависящие от переданных ему аргументов).
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
#include <iostream>
 
class A {
 
public:
    A() : b(0) {};
    int getA() const {
 
        return a;
 
    }
 
private:
    int a, b;
 
};
 
int main() {
 
    A a;
 
    std::cout << a.getA() << '\n';
 
    system("PAUSE");
    return 0;
 
}
Что выведет данный код?
0
1124 / 1035 / 160
Регистрация: 19.02.2010
Сообщений: 3,141
07.11.2018, 21:23 5
Nishen, Это ведь тоже способ установки значений по умолчанию
0
1006 / 692 / 310
Регистрация: 26.02.2015
Сообщений: 3,148
07.11.2018, 23:01 6
VTsaregorodtsev, я к тому, что тут
Цитата Сообщение от VTsaregorodtsev Посмотреть сообщение
Конструктор - для всех полей сразу (даже если ему передаются инициализирующие значения не для всех полей - остальным полям он выставит значения по-умолчанию или как-то зависящие от переданных ему аргументов).
неправда. Я пропустил инициализацию поля a, и компилятор никакого значения "по-умолчанию" ему не дал.
Отличие конструктора и сеттеров в том, что конструктор работает в тот момент, когда создается объект и ИНИЦИАЛИЗИРУЕТ его поля, а сеттеры работают уже с созданным объектом и копируют в поля новые значения.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.11.2018, 23:01

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

Set и Get функции в классах
Не могу понять, зачем нужно ставить set-функцию в классах. Вот пример: // classes.cpp: определяет...

Наследование классов, функции set и get
#include &lt;iostream&gt; using namespace std; class Pair { private: // &lt;--- int x; // &lt;--- ...

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

Конструктор по умолчанию + объявление функции
Сам класс: class Man { public: Man(int lName=30); ~Man(); bool CompareName(const char*)...


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

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

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