VC++
8 отговора
388 прегледа
VC++
Какъв му е проблема на глупавото VC++ !?
Имам следната ситуация:
Не знаел кой оператор да използва - стандартния [](char *, int) или предефинирания [](int) в класа !?
К'во толко да не му е ясно? Вorland C++ 5.5 си го компилира (и работи както се очаква) без грижи! Използва си предефинирания оператор и толко. А VC-то неще. Аз да не съм го написал тоя оператор само защото ми е било скучно!
Как да излъжа VC-то и има ли някоя "pragma" да изключа тез тъпотии, т.е. да го накарам да прави това, което искам. Баси!
Имам следната ситуация:
class A
{
private:
char * data;
public:
operator char * () const
{
return data;
}
char & operator (unsigned _pos)
{
return data[_pos];
}
};
.....
A a;
.....
a[1] = '1' // error C2666
.....
Не знаел кой оператор да използва - стандартния [](char *, int) или предефинирания [](int) в класа !?
К'во толко да не му е ясно? Вorland C++ 5.5 си го компилира (и работи както се очаква) без грижи! Използва си предефинирания оператор и толко. А VC-то неще. Аз да не съм го написал тоя оператор само защото ми е било скучно!
Как да излъжа VC-то и има ли някоя "pragma" да изключа тез тъпотии, т.е. да го накарам да прави това, което искам. Баси!
Re: VC++
problema e che operatora ti e s parametur unsigned, a 1-to e po podrazbirane int
reshenijata sa dve - ili pravish operatora da vzema int, ili kudeto vikash go vikash cast-vash kum unsigned ( a[static_cast<unsigned>(1)] )
po estestvenoto e purvoto - naj malkoto zashtoto i standartnija [] operator vzema int
reshenijata sa dve - ili pravish operatora da vzema int, ili kudeto vikash go vikash cast-vash kum unsigned ( a[static_cast<unsigned>(1)] )
po estestvenoto e purvoto - naj malkoto zashtoto i standartnija [] operator vzema int
Re: VC++
С "int" работи! Баси! Обаче....се намалява диапазона точно 2 пъти....кофти.
Продължавам да мисля, че VC++ e много сбъркан компилатор.
Thanks.
Продължавам да мисля, че VC++ e много сбъркан компилатор.
Thanks.
Re: VC++
Можеш да използваш 1u вместо 1, но най-добре си направи 2 функции.
Контрольорите приличат на Супермен.
Контрольорите приличат на Супермен.
probvai online test-compilera na comeau
[линк]
Toj sushto smjata che koda e greshen,
ili trjabwa samo edinia ot operatorite da si definirash, ili operatora s kwadratnite skobki trjabwa da ti e int.
Comeau twurdjat che tehnia kompilator spazwa pulnia C++ standart.
tirulirutatuutuu
Toj sushto smjata che koda e greshen,
ili trjabwa samo edinia ot operatorite da si definirash, ili operatora s kwadratnite skobki trjabwa da ti e int.
Comeau twurdjat che tehnia kompilator spazwa pulnia C++ standart.
class A
{
private:
char * data;
public:
// Komentiraj tova
operator char * () const
{
return data;
}
// Ili tova
// Ili wmesto da go komentirash go smeni sus int, ili puk wizh suobshteniata za greshki na Comeau
char & operator [ ] (unsigned _pos)
{
return data[_pos];
}
}
int main( int argc, char *argv[ ] )
{
A a;
a[ 1 ] = '1'
}
tirulirutatuutuu
Относно компилаторите...
1. Borland C++ 5.5 (и Borland C++ Builder) с включена опция ANSI и "All Warnings On" и изключени "Borland Specific" го компилира без никакви съобщения.
2. GNU's GCC - версията с RedHat 7.2 го компилира без никакви съобщения.
3. VC++ се жалва.
Друг компилатор нямам под ръка.
2. GNU's GCC - версията с RedHat 7.2 го компилира без никакви съобщения.
3. VC++ се жалва.
Друг компилатор нямам под ръка.
Re: VC++
Ne se zaiajdam, no imash i edna logicheska greshka:
operator char * () const
{
return data;
}
trebva da e:
operator const char * () const
{
return data;
}
ili
operator char * ()
{
return data;
}
, a moje i dvata da gi imash definirani.
operator char * () const
{
return data;
}
trebva da e:
operator const char * () const
{
return data;
}
ili
operator char * ()
{
return data;
}
, a moje i dvata da gi imash definirani.
Re: Относно компилаторите...
obshto wzeto ot tebe zawisi dali tova go iskash portable, ili ne.
Na rabota nie izpolzwame gcc(ps2ee-2.95.3, 2.96), MSVC 7.00 i Code Warrior za PPC (ne mu znam tochnata versia).
Pravim wsichko wuzmozhno taka che koda da e portable mezhdu razlichnite platformi.
Poslednoto koeto ni ostava e da se oplakwame - prosto njama da ni dadat pari za tova.
Prosto idealen kompilator njama... Za tova ima shto gode moshten preprocesor...
I wupreki tova e dobre Microsoft da wzemat da si stegnat C++ kompilatora - daleko ot standarta e ;) (taka pone kazwat specialistite - az po princip sum C-only fen) - i wadi chesto izlishni warningi.
tirulirutatuutuu
Na rabota nie izpolzwame gcc(ps2ee-2.95.3, 2.96), MSVC 7.00 i Code Warrior za PPC (ne mu znam tochnata versia).
Pravim wsichko wuzmozhno taka che koda da e portable mezhdu razlichnite platformi.
Poslednoto koeto ni ostava e da se oplakwame - prosto njama da ni dadat pari za tova.
Prosto idealen kompilator njama... Za tova ima shto gode moshten preprocesor...
I wupreki tova e dobre Microsoft da wzemat da si stegnat C++ kompilatora - daleko ot standarta e ;) (taka pone kazwat specialistite - az po princip sum C-only fen) - i wadi chesto izlishni warningi.
tirulirutatuutuu