Форум программистов, компьютерный форум, киберфорум
Наши страницы

Перегрузка сложения - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Составить программу определяющую между какими из пар точек самое большое расстояние http://www.cyberforum.ru/cpp-beginners/thread795758.html
Добрый вечер. Написал программу. Только не совсем уверен, что она правильная, помогите исправить. Условие: На плоскости заданы своими координатами n точек. Составить программу определяющую между...
C++ Ошибка при написание программы работы с файлами Очень прошу, помогите разобраться и устранить ошибку, не могу понять что не так. #define _CRT_SECURE_NO_WARNINGS #define _CRT_NONSTDC_NO_WARNINGS #include<stdio.h> #include<conio.h>... http://www.cyberforum.ru/cpp-beginners/thread795756.html
Cоздать рекурсивную функцию которая исчисляет y=x+x^2/2+x^3/3+x^4/4...и тд, зависит от введенного икса C++
Задание -создать рекурсивную функцию которая исчисляет y=x+x^2/2+x^3/3+x^4/4...и тд, зависит от введенного икса.Не могу никак разобраться какой нужно передать параметр что бы это все...
"Хитрая» сортировка" Господа, извольте поделиться опытом C++
«Хитрая» сортировка. Из массива путем однократного просмотра выбирается последовательность элементов, расположен¬ных в порядке возрастания, переносится в выходной массив и заменяется во входном на –...
C++ перегрузка функций http://www.cyberforum.ru/cpp-beginners/thread795708.html
У меня есть структура Студенты. в ней есть Имя студента, его Бал аттестата и Возраст. Подскажите, плиз, как создать функцию add(); и printstud(); - так чтобы add(); - добавляла нового студента(она...
C++ длина ребра куба Добрый вечер, ув. программисты! Очень нужна Ваша помощь. Моему сыну в колледже по программированию задали на завтра написать две программы (отдельно). Сам я в программировании "дундук" (ну не мое... подробнее

Показать сообщение отдельно
Valli1
4 / 4 / 0
Регистрация: 14.09.2012
Сообщений: 64
27.02.2013, 21:36  [ТС]
Вы там все перетасовали. Попробуйте вот-так. Все работает, можете передрать прямо отсюда.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
using namespace std;
class Stonewt{private:
enum {lbs_per_stn=14}; int stone; double pds_left; double pounds;char mode;
public:
Stonewt (double lbs,char ch='p');//констр. в фунтах
Stonewt();
 ~Stonewt();
operator int()const;
operator double()const;
Stonewt operator +(Stonewt &st);
friend ostream & operator << (ostream & os,Stonewt & st);
};
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 "Stownet.h"
#include <iostream>
using namespace std;
 
Stonewt::Stonewt(double lbs,char ch){
mode=ch;
if(mode=='s'){
stone=int(lbs);
pds_left=0;
pounds=lbs*lbs_per_stn;}
else if(mode=='p'){
stone=int(lbs)/lbs_per_stn; 
pds_left=int(lbs)%lbs_per_stn+lbs-int(lbs);
pounds=lbs;}
else {
stone=pds_left=pounds=0;mode='p';}}
Stonewt::Stonewt(){stone=pds_left=pounds=0.0;mode='p';}
Stonewt::~Stonewt(){}
Stonewt::operator int()const
{return int(pounds+0.5);}
Stonewt::operator double()const{return pounds;}
Stonewt Stonewt::operator +(Stonewt &st){
Stonewt st1;
st1.stone=st.stone+stone;
st1.pds_left=st.pds_left+pds_left;
if(st1.pds_left>lbs_per_stn){
st1.pds_left=st1.pds_left-lbs_per_stn;
st1.stone++;}
st1.pounds=st.pounds+pounds;
return st1;}
ostream & operator<<(ostream & os,Stonewt & st){
{
os<<"stone:"<<st.stone<<" and "<<st.pds_left<<" pounds: "<<st.pounds<<endl;}
return os;}
C++
1
2
3
4
5
6
7
8
9
10
#include "Stownet.h"
#include <iostream>
using namespace std;
 
int main(){
Stonewt stw(0.5,'p');//И измените на 0.4
Stonewt stw1(13.6,'p');
Stonewt stw2=stw+stw1;
cout<<stw2;
system("pause");}
Добавлено через 21 час 30 минут
[QUOTE=anoise;4186132]Написал проверочную программку... если pds_left == lbs_per_stn (в данном случае оба 14), то у меня if не выполняется... или я что то не так понял.
У меня выполняется. Не выполняется при int(pds_left).Сравниваются 2 разных типа, сравнивает у меня не корректно, почему?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru