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

Ошибка с конструктором копирования - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Обнулить элементы строки, в которой находится минимальный элемент http://www.cyberforum.ru/cpp-beginners/thread603917.html
Дана целочисленная квадратная матрица размера n. Найти максимальный элемент, минимальный элемент из столбца с максимальным элементом и обнулить строку в которой нашли минимум. Первые 2 условия я выполнила, а вот как осуществить обнуление строки с минимумом не понимаю:( #include <stdio.h> #include <stdlib.h> #include <time.h> #define N_MIN -4 #define N_MAX 99 int main(int argc, char *argv){...
C++ В матрице найти максимальный элемент каждой строки В матрице размером m*n найти максимальный элемент каждой строки. Результат получить в виде вектора размером n. #include <iostream> using namespace std; const int m=5,n=4; int main() { int mas; for(int i=0;i<m;i++) http://www.cyberforum.ru/cpp-beginners/thread603907.html
Найти число, зная результат операции с ним C++
С Трех значительного числа х отняли его последнюю цифру.Колы результат разделили на 10, а к остальным слева приписали последней цифры числа х, то получили число 237.ЗНАЙТЫ ЧИСЛО Х
C++ До и после каждого числа, кратного 7, вставить число, равное 5
Дан массив из n целых чисел. До и после каждого числа, кратного 7, вставить число, равное 5. using namespace std; void ShowArr(int *A,int N) { for (int i=0;i<N;i++) cout«A«" "; cout«endl; }
C++ "Перегнать" код из С в С++ (через fstream) http://www.cyberforum.ru/cpp-beginners/thread603879.html
Добрый день. Нужна помощь "перегнать" код из С на С++ через fstream. Задание таково: Описать функцию TextSize(Name) целого типа, возвращающую число строк в текстовом файле с именем Name. Если файл не существует, то функция возвращает -1. Код: #include <iostream> #include <stdio.h> #include <stdlib.h> using namespace std;
C++ получение ipv6 адресов в зоне .ru Добрый вечер, Хотел спросить вот такой вот вопрос: Не подскажите как можно узнать список всех IPv6 адресов и всю информацию о них, находящихся в зоне .ru. Облез весь интернет. Смотрел в ftp в RIPE ничего не нашел. Подскажите пожалуйста, очень срочно надо пишу диплом на тему "исследование ipv6" а точной информации не владею, к сожалению, существует только информация до 2011 года. а диплом... подробнее

Показать сообщение отдельно
Qwoort
 Аватар для Qwoort
0 / 0 / 0
Регистрация: 04.06.2009
Сообщений: 49
12.06.2012, 21:43     Ошибка с конструктором копирования
В коде в строках 59 и 60 компилятор выдает ошибку:
No matching function for call to `SimpleCircle::SimpleCircle(SimpleCircle)'
candidates are: SimpleCircle::SimpleCircle(SimpleCircle&)
SimpleCircle::SimpleCircle(int).
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
#include<iostream>
#include<conio.h>              
using namespace std;
 
class SimpleCircle           
{
      public:
             SimpleCircle();
             SimpleCircle(int);
             
             SimpleCircle(SimpleCircle & rhs);// <= Конструктор копирования
             
             ~SimpleCircle();
             
             SimpleCircle operator++();
             SimpleCircle operator++(int);
             
             void SetRadius(int);
             int GetRadius();
      private:
              int *itsRadius;
};
 
SimpleCircle :: SimpleCircle()
{itsRadius=new int;*itsRadius=5;}
 
SimpleCircle :: SimpleCircle(int input)
{itsRadius=new int;*itsRadius=input;}
 
SimpleCircle :: SimpleCircle(SimpleCircle & rhs) // <= Конструктор копирования
{int val=rhs.GetRadius(); itsRadius=new int(val);}
 
SimpleCircle :: ~SimpleCircle(){}
 
SimpleCircle SimpleCircle :: operator++()
{
    ++(*itsRadius);
    return *this;
}
 
SimpleCircle SimpleCircle :: operator++(int)
{
    SimpleCircle temp(*this);
    ++(*itsRadius);
    return temp;
}
 
void SimpleCircle :: SetRadius(int input)
{itsRadius=new int;*itsRadius=input;}
int SimpleCircle :: GetRadius()
{return *itsRadius;}
 
 
int main()
{    
    SimpleCircle a(10), b(20);
    ++a;++b;
    a++;b++;
    a=b++;//<= Здесь ошибка
    a=++b;//<= и здесь.
    cout << a.GetRadius() << " " << b.GetRadius() << endl;
    getch();    
}
Но когда я удаляю из кода конструктор копирования, всё начинает работать и выдает правильный результат. В чем может быть проблема?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru