using two operators in same line

A

ankitks

Hello programmers,
I am trying to write a class which has a two operators # and <=, so
that I can do something like this.
...
Array mArray;
.....
#4 mArray <= 5; //is this possible to have for # operator to have
nothing on LHS, I can get <= operator work, mArray <=5, but can't think
of anyway to combined both operator togeather! can return refrence to
Array in <= operator to do something like (4# mArray <= 5) to work.

Idealy I like to have #4 mArray <= 5;
but I can live with some other versions, 4# mArray <= 5 or (mArray <=
5) #4 (really not prefer this!)

Any suggestions, comments, help?

class defination for Array
class Array
{
public:
Array();
~Array():
operator<= (const int inIndex) {mIndex = inIndex;}
friend ?? operotor# (const Array& in Array)
private:
int mIndex;
};
 
R

red floyd

Hello programmers,
I am trying to write a class which has a two operators # and <=, so
that I can do something like this.
..
Array mArray;
....
#4 mArray <= 5; //is this possible to have for # operator to have
nothing on LHS, I can get <= operator work, mArray <=5, but can't think
of anyway to combined both operator togeather! can return refrence to
Array in <= operator to do something like (4# mArray <= 5) to work.

Idealy I like to have #4 mArray <= 5;
but I can live with some other versions, 4# mArray <= 5 or (mArray <=
5) #4 (really not prefer this!)

Any suggestions, comments, help?

class defination for Array
class Array
{
public:
Array();
~Array():
operator<= (const int inIndex) {mIndex = inIndex;}
friend ?? operotor# (const Array& in Array)
private:
int mIndex;
};


First of all, you *can't* define operator#. There is no such operator.
Given that, you're toast anyways.
 
A

ankitks

sorry, also forgot one more important point,
how can I have a higher precedence set for <= operator. Assignments
should always evaluate <= first and after that #)

thanks
 
A

ankitks

thanks, good to know, how about using then ^ or @
red said:
First of all, you *can't* define operator#. There is no such operator.
Given that, you're toast anyways.
 
P

Puppet_Sock

[snips, and top posting corrected]
thanks, good to know, how about using then ^ or @

Well, what would operator # do if it did exist? What are you
trying to get from it?

Um. I don't think there's an operator @, is there?
Socks
 
R

Ron Natalie

Puppet_Sock said:
Um. I don't think there's an operator @, is there?
Socks
@ and $ do not exist in the C++ syntax anywhere
(outside of char/string literals).
 
A

ankitks

if operator # exit, I like to do something

operator# (const int inCount) {mIndex = mIndex * inCount;}

this is just example.



Puppet_Sock said:
[snips, and top posting corrected]
thanks, good to know, how about using then ^ or @

Well, what would operator # do if it did exist? What are you
trying to get from it?

Um. I don't think there's an operator @, is there?
Socks
 
T

Thomas J. Gritzan

Hello programmers,
I am trying to write a class which has a two operators # and <=, so
that I can do something like this.
..
Array mArray;
....
#4 mArray <= 5; //is this possible to have for # operator to have
nothing on LHS, I can get <= operator work, mArray <=5, but can't think
of anyway to combined both operator togeather! can return refrence to
Array in <= operator to do something like (4# mArray <= 5) to work.
[...]

There is no # operator, and I doubt that your <= operator is an "lesser
equal" operator. Don't confuse other compilers by changing the meaning of
operators.

Read the FAQ on operator overloading:
http://www.parashift.com/c++-faq-lite/operator-overloading.html
 
R

Rolf Magnus

if operator # exit, I like to do something

operator# (const int inCount) {mIndex = mIndex * inCount;}

this is just example.

Operator overloading is for doing things with your own types that are
logically similar to what the same operator would do with built-in types.
It is supposed to help you extend the langage, not change it into a
different one. Since there is no operator# for built-in types, there is
nothing useful it could do and so you can't define your own either.
You can overload operator^, but only as a binary operator (i.e. having two
arguments, one on the left and one on the right side). It's supposed to do
a bitwise exclusive or of the two arguments.
 
D

Daniel T.

Hello programmers,
I am trying to write a class which has a two operators # and <=, so
that I can do something like this.

You cannot invent operators, all you can do is implement the operators
that already exist.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,763
Messages
2,569,563
Members
45,039
Latest member
CasimiraVa

Latest Threads

Top