Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Spirit370
1 / 1 / 4
Регистрация: 08.08.2013
Сообщений: 86
#1

Сравнение двух объектов через конструктор с одним аргументом

23.08.2014, 01:15. Просмотров 1098. Ответов 3
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Int
{
private:
    unsigned int integer;
public:
    inline int get_int()const
    {return integer;}
    Int () : integer (0){}
    Int ( int c ) : integer(c){}
};
void main()
{
    Int c2(5),c1;
    c1 = c2;
    cout << c1.get_int() << endl;
    system("PAUSE");
}
Я просто хочу понять.

В этой программе сравнивается
C++
1
c1 = c2;
Значит при сравнении с2 подставляется в аргумент конструктора
C++
1
Int ( int c ) : integer(c){}
А теперь вопрос, как объект подставляется в аргумент int.
2)Из объектов вытягивается значение integer и сравнивается?
Или как-то ещё это делается?

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

0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.08.2014, 01:15
Ответы с готовыми решениями:

Сравнение класса наследника через конструктор с одним аргументом
#include &lt;iostream&gt; using namespace std; ////////////////////////////////...

Вызвать конструктор с одним аргументом
Есть класс с конструктором принимающим один аргумент типа T. Этим аргументом...

Инициализация массива объектов через конструктор
class some { public: some(){} some(int b):a(b){} void Set(int...

Инициализация объектов через конструктор(объясните в чём ошибка)
Вот программа! #include &lt;iostream&gt; #include &lt;string&gt; using namespace std;...

Реализовать вызов конструктора с одним аргументом, запретив остальные варианты
Как сделать, чтобы конструктор можно было вызвать только одним способом: //Так...

3
DrOffset
7595 / 4564 / 1106
Регистрация: 30.01.2014
Сообщений: 7,427
23.08.2014, 01:16 #2
Цитата Сообщение от Spirit370 Посмотреть сообщение
В этой программе сравнивается
Разве это сравнение? Это присваивание.
1
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
7024 / 3320 / 452
Регистрация: 04.12.2011
Сообщений: 9,255
Записей в блоге: 5
23.08.2014, 01:25 #3
Spirit370, для инициализации unsigned int передавать надо бы не int а unsigned int. Передайте -1 и посмотрите что получится.
Цитата Сообщение от Spirit370 Посмотреть сообщение
Значит при сравнении с2 подставляется в аргумент конструктора
Это присваивание. Сравнение это когда результат булев, а операция не присванивания, а отношения : ==, !=, <, >, <=, >=. При присваивании в вашем примере, конструктор копирования предоставленный по умолчанию копирует по-байтово один объект в другой.
1
КОП
451 / 358 / 116
Регистрация: 15.08.2010
Сообщений: 973
Завершенные тесты: 1
23.08.2014, 01:30 #4
Лучший ответ Сообщение было отмечено Spirit370 как решение

Решение

Цитата Сообщение от Spirit370 Посмотреть сообщение
Значит при сравнении с2 подставляется в аргумент конструктора
Для перегрузки такого присваивания (не сравнения) используйте void Int::operator=( const Int& ). В теле делаете что хотите, хоть левое значение задавайте. Для конструктора так же можно: Int(const Int& s)
Если не перегрузить, то:
Цитата Сообщение от IGPIGP Посмотреть сообщение
При присваивании в вашем примере, конструктор копирования предоставленный по умолчанию копирует по-байтово один объект в другой.
Если нужно избежать возможного случайного копирования объектов (к примеру если у всех есть свой уникальный ID), то можно запретить такие действия, объявив в приват секции
C++
1
2
3
private:
Int(const Int& s) {}
void Int::operator=( const Int& ) {}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.08.2014, 01:30

Сравнение 2 объектов, через адрес таблицы виртуальных методов
Есть функция принимающая на вход 2 указателя на объекты (класс скорее всего...

Компилятор требует конструктор, принимающий аргументом экземпляр того же класса (не ссылку)
Доброго времени суток. Проблема такова: имеется ряд нижеприведённых классов...

Конструктор с одним параметром и с переменным числом параметров
пишу обычный класс, обычная лаба, где несколько конструкторов.применять...


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

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

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