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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
servok
0 / 0 / 0
Регистрация: 10.12.2008
Сообщений: 6
#1

VS 2008 Проблема с конструктором копий - C++

10.12.2008, 03:54. Просмотров 714. Ответов 7
Метки нет (Все метки)

Недавно получил от MS VS2008 и компилятор ругается на конструктор копий, может что исправили в этой версии?

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
class SimpleCircle
{
public:
    SimpleCircle();
    SimpleCircle(int);
// Тут ошибка
// error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    SimpleCircle(const SimpleCircle$);
    ~SimpleCircle() {};
 
//  void SetRadius(int);
    int GetRadius() const;
 
    const SimpleCircle $ operator++();
    const SimpleCircle operator++(int);
    SimpleCircle & operator=(const SimpleCircle &);
 
private:
    int *itsRadius;
};
 
SimpleCircle::SimpleCircle(const SimpleCircle & rhs)
{
    int val = rhs.GetRadius();
    itsRadius = new int(val);
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2008, 03:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос VS 2008 Проблема с конструктором копий (C++):

Проблема с конструктором. - C++
Пытаюсь сделать класс список и не получается написать конструктор копирования. header // #include <iostream>; using namespace std; ...

Проблема с перегрузкой операторов '-' >> << и с конструктором без параметров - C++
Помогите пожалуйста, проблема с перегрузкой операторов '-' &gt;&gt; &lt;&lt;, возможно еще с конструктором без параметров наверно проблема #pragma...

Visual C++ 2008 express edition - проблема с *.exe - C++
Может быть я зря ломаю голову и эта экспресс версия не преднозначена для создания самостоятельных exe'шников, но все таки спрошу. ...

Если проект создала в Visual C++ Express 2008, он должен запуститься просто в VS 2008? - C++
Извините за глупый вопрос, просто времени нет устанавливать и проверять( Очень спешу

Работа с конструктором - C++
Доброго времени суток. Обращаюсь к вам с двумя проблемами. Во-первых, Code Blocks выдаёт у меня ошибку multiple definition. Связано ли...

Трабла с конструктором - C++
Компилятор никаких ошибок не выдает, но программа не запускается. using namespace std; class Cpmv { public: struct Info ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
FOLKEN
21 / 20 / 3
Регистрация: 03.12.2008
Сообщений: 86
10.12.2008, 04:10 #2
добро пожаловать в наш клуб :)
вот тут занимаюсь пересадкой проекта в MS VS2008 . пока что не особо успешно, хотя уже помогли. уверен и на твой вопрос найдется ответ)

Добавлено через 1 минуту 37 секунд
Long Live the MSDN!
вот
и примерчик оттуда же
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// C4430.cpp
// compile with: /c
struct CMyClass {
   CUndeclared m_myClass;  // C4430
   int m_myClass;  // OK
};
 
typedef struct {
   POINT();   // C4430
   // try the following line instead
   // int POINT();
   unsigned x;
   unsigned y;
} POINT;
0
servok
0 / 0 / 0
Регистрация: 10.12.2008
Сообщений: 6
10.12.2008, 06:06  [ТС] #3
Вот нашел отличия от VS2005:
Explicit specialization not allowed as a copy constructor/copy assignment operator

Code that depends on an explicit template specialization for a copy constructor or copy assignment operator will now get Compiler Error C2299. Standard C++ prohibits this. This change was made for conformance reasons, to make code more portable

Понял только то что это изменение сделано для большей переносимости кода. И в первой строке вроде написано что теперь конструктор копирования не поддерживается?
-----------------------------------------
Хотя без конструктора копирования никак, при перегрузке операторов компилятор говорит, что нет конструктора копий. Видимо просто я незнаю как правильно теперь его использовать
0
FOLKEN
21 / 20 / 3
Регистрация: 03.12.2008
Сообщений: 86
10.12.2008, 06:11 #4
нененене. читаем дальше
To resolve C2299, do not make the copy constructor or assignment operator a template function, but rather a non-template function that takes a class type
хрен его знает как это перевести, но думаю и так понятно
и пример
C++
1
2
3
4
5
6
7
8
// compile with: /c
class C {
   template <class T>
   C (T t);
 
   template <> C (const C&);   // C2299
   C (const C&);   // OK
};
0
servok
0 / 0 / 0
Регистрация: 10.12.2008
Сообщений: 6
10.12.2008, 06:18  [ТС] #5
Добавлено через 3 минуты 48 секунд
Вот блин, еще раз смотрим мой код
C++
1
SimpleCircle(const SimpleCircle$);
Что у меня там знак доллара забыл
Пора спать, я почти во всем коде долларов понаставил.
0
FOLKEN
21 / 20 / 3
Регистрация: 03.12.2008
Сообщений: 86
10.12.2008, 06:24 #6
хех. бывает, видимо кризис сказывается :) да и насчет "пора спать" - чертовски верно подмечено :)

Добавлено через 2 минуты 11 секунд
хотя все равно нипанятнааа...
0
servok
0 / 0 / 0
Регистрация: 10.12.2008
Сообщений: 6
10.12.2008, 06:26  [ТС] #7
А что еще непонятно? У меня вроде заработало все)
Не люблю ошибки в синтаксисе, компилятор обязательно укажет на что-нибудь глобальное, а сам заметишь ошибку не скоро
0
FOLKEN
21 / 20 / 3
Регистрация: 03.12.2008
Сообщений: 86
10.12.2008, 06:36 #8
вот сейчас действительно понял) совсем голова не соображает уже
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.12.2008, 06:36
Привет! Вот еще темы с ответами:

Что-то с конструктором - C++
Задача: написать программу бюджета, есть два типа счета, у каждого свои параметры пополнения и снятия. Место вывода баланса только что...

Работа с конструктором - C++
Всем доброго времени суток. Получил задание по программированию в универе. Писать задание за меня не прошу, нужно лишь уяснить парочку...

Шаблон с конструктором копирования - C++
Найдите периметр и площадь выпуклого многоугольника. Распределение памяти для хранения массивов должно осуществляться динамически(в...

Проблеммка с конструктором копирования - C++
В общем суть: /*Создать класс - одномерный массив целых чисел (вектор). Функции-члены обращаются к отдельному элементу массива, вывода...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
10.12.2008, 06:36
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru