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

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

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

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

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

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

Код
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);
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
FOLKEN
21 / 20 / 3
Регистрация: 03.12.2008
Сообщений: 86
10.12.2008, 04:10     VS 2008 Проблема с конструктором копий #2
добро пожаловать в наш клуб :)
вот тут занимаюсь пересадкой проекта в MS VS2008 . пока что не особо успешно, хотя уже помогли. уверен и на твой вопрос найдется ответ)

Добавлено через 1 минуту 37 секунд
Long Live the MSDN!
вот
и примерчик оттуда же
Код
// 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;
servok
0 / 0 / 0
Регистрация: 10.12.2008
Сообщений: 6
10.12.2008, 06:06  [ТС]     VS 2008 Проблема с конструктором копий #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

Понял только то что это изменение сделано для большей переносимости кода. И в первой строке вроде написано что теперь конструктор копирования не поддерживается?
-----------------------------------------
Хотя без конструктора копирования никак, при перегрузке операторов компилятор говорит, что нет конструктора копий. Видимо просто я незнаю как правильно теперь его использовать
FOLKEN
21 / 20 / 3
Регистрация: 03.12.2008
Сообщений: 86
10.12.2008, 06:11     VS 2008 Проблема с конструктором копий #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
хрен его знает как это перевести, но думаю и так понятно
и пример
Код
// compile with: /c
class C {
   template <class T>
   C (T t);

   template <> C (const C&);   // C2299
   C (const C&);   // OK
};
servok
0 / 0 / 0
Регистрация: 10.12.2008
Сообщений: 6
10.12.2008, 06:18  [ТС]     VS 2008 Проблема с конструктором копий #5
Добавлено через 3 минуты 48 секунд
Вот блин, еще раз смотрим мой код
Код
SimpleCircle(const SimpleCircle$);
Что у меня там знак доллара забыл
Пора спать, я почти во всем коде долларов понаставил.
FOLKEN
21 / 20 / 3
Регистрация: 03.12.2008
Сообщений: 86
10.12.2008, 06:24     VS 2008 Проблема с конструктором копий #6
хех. бывает, видимо кризис сказывается :) да и насчет "пора спать" - чертовски верно подмечено :)

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

C++ шаблон с конструктором копирования
Что-то с конструктором C++
C++ Трабла с конструктором
Ввод данных с конструктором C++
Работа с конструктором C++

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

Или воспользуйтесь поиском по форуму:
FOLKEN
21 / 20 / 3
Регистрация: 03.12.2008
Сообщений: 86
10.12.2008, 06:36     VS 2008 Проблема с конструктором копий #8
вот сейчас действительно понял) совсем голова не соображает уже
Yandex
Объявления
10.12.2008, 06:36     VS 2008 Проблема с конструктором копий
Ответ Создать тему
Опции темы

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