Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.01.2012, 19:30   #1
manoichi
 
Регистрация: 18.12.2010
Сообщений: 5
По умолчанию Перегрузка операций

Задание у меня перегрузить операции:
+ добавить элемент в множество;
* пересечение множеств;
int() мощность множества.

Вот как раз с мощностью я разобраться не могу.


Код:
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <string>
#include "locale"
 
using namespace std;
 
class Mnozh // класс "Множество"
{
        private:
                char *mnozh; // переменная, хранящая элементы множества
        
        public:
                Mnozh(); // конструктор по умолчанию
                Mnozh(char *word); // конструктор инициализации
                //~Mnozh() { cout << "Destructor work\n"; } 
 
                void input(); // метод ввода множества
                void output(); // метод вывода множества
                void swap(Mnozh & a); // метод замены
 
                Mnozh & operator = (Mnozh & n) // перегрузка оператора "="
                {
                        if (this!=&n) Mnozh(n).swap(*this);
                        return *this;
                }
 
                void  operator + (char s) // перегрузка оператора "+", которая добавляет элемент 
                {
                        char buf[256];
                        int i,j;
 
                        for (i=0; mnozh[i]!='\0'; i++);
                        mnozh[i]=s; mnozh[i+1]='\0';
 
                }
 
        /*void operator % (int w) // перегрузка оператора "/ вместо int ()", мощность множества
                {
                        char buf[256];
                        int i,j;
 
                        for (i=0; mnozh[i]!='\0'; i++);
                        mnozh[i]=w;
                }*/
 
 
                Mnozh & operator * (Mnozh &a) // перегрузка оператора "*", которая производит пересечение множеств
                {
                        char temp[256];
                        int i,j,k=0;
 
                        for (i=0; mnozh[i]!='\0'; i++)
                        {
                                for (j=0; a.mnozh[j]!='\0'; j++)
                                        if (a.mnozh[j]==mnozh[i]) { temp[k++]=mnozh[i]; break; } 
                                temp[k] = NULL;
                        }
                        strcpy(mnozh,temp);
                        return *this;
                }
};
 
Mnozh::Mnozh() // описание конструктора по умолчанию
{
        mnozh = new char[strlen("Default")+1];
        strcpy(mnozh,"Default");
}
 
Mnozh::Mnozh(char *word) // описание конструктора инициализации
{
        mnozh = new char[strlen(word)+1];
        strcpy(mnozh,word);
}
 
void Mnozh::input() // описание метода ввода данных
{
        char str[256];
 
        cout << "Enter mnozhestvo >> ";
        cin >> str;
 
        mnozh = new char[strlen(str)+1];
        strcpy(mnozh,str);
}
 
void Mnozh::output() // описание метода вывода данных
{
        cout << "MNOZESTVO : " << mnozh << endl;
}
 
void Mnozh::swap(Mnozh &a) // описание метода замены двух объектов
{
        std::swap(mnozh,a.mnozh);
}
 
int main() // главная функция
{
        setlocale(LC_ALL, "");
        Mnozh a("House");
        Mnozh b("Real");
 
        a+'y';
        
 
        a.output();
        b.output();
 
        a=a * b;
        //a%17;
        
        
        a.output();
        b.output();
        getch();
        return 0;
}
manoichi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перегрузка операций С++ mego4el Помощь студентам 1 31.10.2011 11:38
С++ Перегрузка операций sir.andrey Помощь студентам 3 08.07.2011 15:18
перегрузка операций nastya081108 Помощь студентам 0 18.05.2010 21:16
перегрузка операций в си++ Serjuk Общие вопросы C/C++ 9 20.03.2010 21:30