Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/17: Рейтинг темы: голосов - 17, средняя оценка - 4.88
DetRoyD_Style
1

Error C2593: 'operator +=' is ambiguous

12.03.2008, 22:17. Показов 3332. Ответов 3
Метки нет (Все метки)

вообщем тема такая учусь програмить все когда то этим занимались, вот запоролся на вводе текста с клавиатуры:
C++
1
2
3
4
5
6
7
8
9
10
void CkeystrokesView::OnChar( UINT nChar, UINT nRepCnt, UINT nFlags)
{
    CkeystrokesDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    pDoc->StringData += nChar;
 
    Invalidate();
 
    CView::OnChar(nChar,nRepCnt, nFlags);
}
при попытке скомпелировать
выдает ошибку error C2593: 'operator +=' is ambiguous

а если строку
C++
1
pDoc->StringData += nChar;
переписываешь как
C++
1
pDoc->StringData = pDoc->StringData + nChar;
, т.е. не сокращенным видом то выдает ошибку:
error C2666: 'ATL::CStringT<BaseType,StringTraits>::operator +' : 3 overloads have similar conversions
путем шастаньий понял что надо что то зделать с nChar авот что незнаю!
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.03.2008, 22:17
Ответы с готовыми решениями:

error C2593: неоднозначный "operator ="
double go; char s; UpdateData(TRUE); go=v*v *sin(2*a*3.14159/180)/g; m_st=go; ...

Странная перегрузка операторов (Error: ambiguous overload for 'operator[]')
Что-то я туплю. Есть код: #include&lt;string&gt; struct test { int operator(const...

Почему возникает ошибка? error: ambiguous overload for 'operator>>'
class planet { protected: double distance; int revolve; public: planet(double d,...

Error: ambiguous overload for 'operator<<' (operand types are 'std::ofstream {aka std::basic_ofstream<char>}'
на #define LOG(Variable) Log&lt;&lt;&quot;&lt;&quot;;...

3
DetroyD_Style
13.03.2008, 13:45 2
Всем спасибо сам додумал, вот исправленный код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
void CkeystrokesView::OnChar( UINT nChar, UINT nRepCnt, UINT nFlags)
{   
    char fr = nChar;
    CkeystrokesDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    pDoc->StringData = pDoc->StringData + fr;
 
    Invalidate();
 
    CView::OnChar(nChar,nRepCnt, nFlags);
 
}
Может кому понадобиться! )
0 / 0 / 0
Регистрация: 28.10.2012
Сообщений: 21
17.12.2008, 03:21 3
Цитата Сообщение от DetroyD_Style Посмотреть сообщение
Может кому понадобиться! )
Спасибо, помогло. На этом же месте тормознул...
0
aebrat
28.02.2009, 12:05 4
есть более простой вариант записи символов в pDoc->StringData без создания новой переменной:
C++
1
2
3
4
5
CkeystrokesDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
pDoc->StringData += char(nChar);
Invalidate();
CView::OnChar(nChar,nRepCnt, nFlags);
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.02.2009, 12:05

Class & operator's |Error: undefined reference to operator
Компилирует нормально, но когда хочу использовать оператор выдает ошибку:undefined reference to...

Ambiguous access Error
Здравствуйте! Пытаюсь разобраться с наследованием, общими предками и виртуальным наследованием. ...

error:'Ambiguous column name 'handle''
est query: SELECT p.*,ti.title,ti.handle FROM personal p INNER JOIN textual_inform ti ON...

Error 1 The call is ambiguous between the following methods or properties
ошибка в строке 143: &quot; MainContainer.AddToEnd(Container.EnterStudent()); &quot; . Как ее исправить? ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru