Форум программистов, компьютерный форум CyberForum.ru

Оператор присвоения для класса - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Массив указателей списков смежных вершин http://www.cyberforum.ru/cpp-beginners/thread1062907.html
Добрый день. Помогите пожалуйста в реализации списка смежности для графа. Знаю, в инете много примеров, но пока для своего не нашел подходящего. Вот у меня есть структура: struct list { int n; list *next; };
C++ Перевод из string в wstring. Неправильная кодировка Здорова господа! Перевожу строку из string в wstring, в строке русские символы и они выводятся в консоли не крякозябрами а просто палочками. От код: #include <iostream> using std::wcout; using std::cout; using std::endl; #include <io.h> http://www.cyberforum.ru/cpp-beginners/thread1062906.html
C++ Алгоритм Дейкстры
Что-то у меня Дейкстра не работает... прошу помощи у вас... Сам уже часа 1.5 сижу и не могу найти ошибку...#include <iostream> #include <cstring> #include <cmath> #include <stack> #include <queue> using namespace std; int n,m,a,s,f,p,h; bool used; int res;
C++ Шифрование методом цезаря
Здравствуйте, прошу вас о помощи. Это может показаться наглым, но, мне срочно нужна помощь с курсовым проектом, дело в том что с горем пополам я написал программу для шифрования методом цезаря, но меня ждал сюрприз, препод огорчил меня тем что нужно было делать все на билдере или подобие ему. Отправила на перездачу, а времени по просту не хватает, очень надеюсь на вашу помощь, нужна форма с...
C++ Нужно заменить последнюю заглавную букву в строке на слово "Kukushechka" http://www.cyberforum.ru/cpp-beginners/thread1062881.html
То есть программа должна сама искать последнюю заглавную букву, определять ее номер в строке, ставить вместо нее и последующего текста слово "Kukushechka". В таком состоянии она только определяет номер и никак не хочет заменять. #include "stdafx.h" #include <conio.h> #include <stdio.h> #include <string.h> #include <iostream> using namespace std; char f( char *g, char* kuk);
C++ Странное поведение cin Перегружаю оператор ввода следующим образом: #include <iostream> using namespace std; class Vector2D { public: long double x, y; подробнее

Показать сообщение отдельно
vozup
5 / 5 / 0
Регистрация: 25.12.2011
Сообщений: 99
04.01.2014, 15:51     Оператор присвоения для класса
Никак не получается написать оператор присвоения. Помогите пожалуйста!
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#include <iostream>
#include <conio.h>
 
using namespace std;
 
class Vector
{
private:
    int count;
    float* mass;
    static int c_obj;
public:
    Vector() { count = 1; mass = new float; mass = 0; c_obj++;}
    
    Vector(int n)
    {
       c_obj++;
       count = n;
       mass = new float[count];
       for(int i=0;i<count;i++)
          mass[i] = i;
    }
    
    Vector(int n, float* init)
    {
       c_obj++;
       count = n;
       mass = new float[count];
       for(int i=0;i<count;i++)
          mass[i] = init[i];          
    }
    
    ~Vector(){ if(count == 1) delete mass; else delete[]mass; c_obj--;}
    
    void PrintVec();
    void GetCountOfObject() { cout<<"Count of object: "<<c_obj<<endl; }
    
public:
       Vector(const Vector &copy); 
       Vector operator=(const Vector &copy);
};
 
int Vector::c_obj = 0;
 
void Vector::PrintVec()
{
   if(count == 1) cout<<mass<<endl;
   else
      for(int i=0;i<count;i++)
         cout<<mass[i]<<" ";
      cout<<endl;    
}
 
Vector::Vector(const Vector& copy)
{
   if(this->count == copy.count) 
       for(int i=0;i<count;i++)
          mass[i] = copy.mass[i];
   if(this->count > copy.count)
   {
      for(int i=0;i<count;i++)
      {
         if(copy.count<i) mass[i] = copy.mass[i];
         else mass[i] = 0;           
      }    
   }
   if(this->count < copy.count)
   {
      Vector v(this->count);
      for(int i=0;i<this->count;i++)
         v.mass[i] =  this->mass[i];
      delete [] this->mass;
      this->mass = new float[copy.count];
      for(int i=0;i<copy.count;i++)
      {
         if(this->count<i) this->mass[i] = v.mass[i];
         else this->mass[i] = 0;           
      }    
      this->count = copy.count;
   }
}
 
Vector Vector:: operator=(const Vector &copy)
{
    
    
                     
}
 
int main()
{
    float mass[5];
    for(int i=0;i<5;i++)
       mass[i] = rand()%10;
       
    Vector v(5,mass),t(5);
    v.PrintVec();
    t.PrintVec();
    t = v;
    t.PrintVec();
    
    getch();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 03:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru