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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.10.2010, 23:52   #1
zhenya.ya
Форумчанин
 
Регистрация: 29.11.2009
Сообщений: 142
Сообщение перегрузка операции со счетом

Как правильно перегрузить операцию сложения для счетов(m_nID) ?
Как ее в main распознать(задействовать) ?
Код:
void operator + (CAccount f);
...
...
void CAccount::operator +(CAccount f)
{
	CAccount tmp;
	tmp.m_nID=m_nID+f.m_nID;
	return tmp;
}
Весь код.
Код:
class CAccount
{
public:
	CAccount();
	~CAccount();
	void InputData();
	void OutputData();
	void operator + (CAccount f);
	 int getSalary()
    {
        return m_nValue;
    };
private:
	int m_nID;
	int m_nValue;
};
CAccount::CAccount():m_nID(-1),m_nValue(-1){}
CAccount::~CAccount(){}
void CAccount::InputData()
{
	cout<<" Enter account ID:";
	cin>>m_nID;
	cout<<" Enter account value:";
	cin>>m_nValue;
}
void CAccount::OutputData()
{
	cout<<" account ID:" << m_nID <<" , Account Value: "<<m_nValue << endl;
}
class CClient
{
public:
	CClient();
	~CClient();
	void InputData();
	void OutputData();
	friend int getSalary(CClient &client, char * line);
	
private:
	char *m_szName; //имя клиента
	CAccount *m_pAccounts; // счета данного клиента
	int m_nAccountCount; //кол-во счетов
};
CClient::CClient()
{
	m_nAccountCount=0;
	m_pAccounts=NULL;
	m_szName=NULL;
}
void CClient::InputData()
{
	m_szName=new char[33];
	cout<<" input name:"<<endl;
	cin>>m_szName;
	cout<<" input amount of values:"<<endl;
	cin>>m_nAccountCount;
	m_pAccounts=new CAccount[m_nAccountCount];
	for(int i=0;i<m_nAccountCount;i++)
	{
		cout<<"enter["<<i<<"]account:"<<endl;
		m_pAccounts[i].InputData();
	}
}
void CClient::OutputData()
{
	cout<<" name: "<<m_szName<<endl;
	cout<<" accounts:"<<endl;
	for(int i=0;i<m_nAccountCount;i++)
	{
	m_pAccounts[i].OutputData();
	}
}
	CClient::~CClient()
{
	delete []m_pAccounts;
	delete []m_szName;
}
	int getSalary(CClient & client, char * line) 
{
	if(strcmp(line,client.m_szName))return 0;
    int m_nValue = 0;
	for(int i = 0; i<client.m_nAccountCount; i++)
     m_nValue += client.m_pAccounts[i].getSalary();
    return m_nValue;
}
class CBank
{
public:
	CBank();
	~CBank();
	void InputData();
	void OutputData();
	   void ShowSalary()
    {
        char line[22];
        std::cout<<" input name:"<<std::endl;
        std::cin>>line;
        int m_nValue=0;
        for(int i = 0; i<m_nClientCount; i++)
        m_nValue += getSalary(m_pClients[i], line);
        std::cout<<"\n"<<m_nValue<<std::endl;
    }
private:
	char *szName;
	CClient *m_pClients;
	int m_nClientCount;
};
CBank::CBank()
{
	szName=NULL;
	m_pClients=NULL;
	m_nClientCount=0;
}
void CBank::InputData()
{
	szName=new char [33];
	cout<<" input bank name:"<<endl;
	cin>>szName;

	cout<<" sizeof:"<<endl;
	cin>>m_nClientCount;
	m_pClients=new CClient[m_nClientCount];
	for(int i=0;i<m_nClientCount;i++)
	{
		m_pClients[i].InputData();
	}
}
void CBank::OutputData()
{
	cout<<"bank name: "<<szName<<endl;
	for(int i=0;i<m_nClientCount;i++)
	{
		m_pClients[i].OutputData();
	}
}
CBank::~CBank()
{
	delete []m_pClients;
	delete []szName;
}
void CAccount::operator +(CAccount f)
{
	CAccount tmp;
	tmp.m_nID=m_nID+f.m_nID;
	return tmp;
}
void main()
{
	CBank bank;
	cout<<"---Reading bank information---"<<endl;
	bank.InputData();
	system("cls");
	cout<<"---Reading bank information---"<<endl;
	bank.OutputData();
	bank.ShowSalary();
	system("PAUSE");
}
zhenya.ya вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перегрузка операции "->*" C++ Geg[C/c++] Общие вопросы C/C++ 3 15.12.2009 12:49
Перегрузка в С++ Tat-ka Помощь студентам 1 08.11.2009 03:26
Проблема с счетом строк Волк Microsoft Office Excel 5 22.03.2009 12:12
перегрузка + softrix Общие вопросы C/C++ 2 21.06.2008 22:27
Перегрузка ++ Dark_Maks Общие вопросы C/C++ 2 18.12.2007 09:27