Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include "RegTask.h"
- using namespace std;
- int main() {
- int t[5] = { 100,200,300,400,500 };
- double s[5] = { 264.5,1515.88,48.8,515.5,484.99 };
- RegTask a(5, t, s);
- RegTask b = a;
- {
- RegTask c;
- c = a+b;
- c.print();
- }
- a.print();
- cout << endl;
- b.print();
- cout << endl;
- }
- //RegTask.h
- #pragma once
- class RegTask {
- public:
- //constructors
- RegTask();
- RegTask(size_t);
- RegTask(size_t, int *, double *);
- RegTask(const RegTask &);
- ~RegTask();
- //предифиниране на =
- RegTask &operator =(const RegTask &);
- RegTask operator +(const RegTask &) const;
- //Set + Get
- int SetCounter(size_t);
- int SetTask(size_t,int *);
- int setLasary(size_t,double *);
- size_t GetCounter() const;
- int * getTask() const;
- double * getSalary() const;
- int print() const;
- int addTask(int, double);
- private:
- size_t count;
- int * task;
- double * salary;
- };
- //RegTask.cpp
- #include "Regtask.h"
- #include<iostream>
- RegTask::RegTask(): count(0), task(NULL),salary(NULL) {} //NULL for pointers
- RegTask::RegTask(size_t count): count(count), task(new int [count]),salary(new double[count]){} //заделяме памет
- RegTask::RegTask(size_t count, int * task, double * salary): count(count), task(new int[count]), salary(new double[count]){
- for (size_t i = 0; i < count; i++)
- {
- this->task[i] = task[i];
- this->salary[i] = salary[i];
- }
- }
- RegTask::RegTask(const RegTask &right){
- count = right.count;
- task = new int[count];
- salary = new double[count];
- for (size_t i = 0; i < count; i++)
- {
- task[i] =right.task[i];
- salary[i] = right.salary[i];
- }
- }
- RegTask::~RegTask(){
- delete [] task; // чистим динамичните данни //всички уакзатели ги пишем ние
- delete [] salary;
- }
- int RegTask::SetCounter(size_t task) {
- this->count = count;
- return 0;
- }
- int RegTask::SetTask(size_t counter,int * task){
- if (this->count != 0 && this->task != NULL) delete[]this->task;
- this->count = count;
- this->task = new int[count];
- for (size_t i = 0; i < count; i++)
- {
- this->task[i] = task[i];
- }
- return 0;
- }
- int RegTask::setLasary(size_t counter,double * salary){
- if (this->count != 0 && this->salary != NULL) delete[]this->salary;
- this->count = count;
- this->salary= new double[count];
- for (size_t i = 0; i < count; i++)
- {
- this->salary[i] = salary[i];
- }
- return 0;
- }
- size_t RegTask::GetCounter() const{
- return count;
- }
- int * RegTask::getTask() const{
- return task;
- }
- double * RegTask::getSalary() const{
- return salary;
- }
- int RegTask::print() const{
- std::cout << " Number of registered task is " << count << std::endl;
- for (size_t i = 0; i < count; i++)
- {
- std::cout << " For task with number " << task[i] << " the user recieved " << salary[i] << std::endl;
- }
- return 0;
- }
- RegTask & RegTask::operator =(const RegTask & right) {
- if (this != &right) {//dali ne sa edin obekt
- if (count != 0) { //zadelena e pamet za masivi
- delete[] task;
- delete[] salary;
- }
- count = right.count;
- task = new int[count];
- salary = new double[count];
- for (size_t i = 0; i < count; i++)
- {
- task[i] = right.task[i];
- salary[i] = right.salary[i];
- }
- }
- return *this; //return променения текущ обект
- }
- int RegTask::addTask(int newTask, double newSalary){
- count++;
- int * tmpTask = new int[count];
- double* tmpSalary = new double[count];
- for (size_t i = 0; i < count-1; i++)
- {
- tmpTask[i] = task[i];
- tmpSalary[i] = salary[i];
- }
- if (count - 1 != 0) {
- delete[] task;
- delete[] salary;
- }
- tmpTask[count - 1] = newTask;
- tmpSalary[count - 1] = newSalary;
- //prenasochvane na ukazatelite
- task = tmpTask;
- salary = tmpSalary;
- return 0;
- }
- RegTask RegTask:: operator +(const RegTask & right) const {
- size_t tmpCount;
- (count < right.count) ? tmpCount = count : tmpCount = right.count;
- RegTask sum(tmpCount);
- for (size_t i = 0; i < tmpCount; i++)
- {
- sum.task[i] = task[i] + right.task[i];
- sum.salary[i] = salary[i] + right.salary[i];
- }
- return sum;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement