alternative for pointers

S

stanlo

Hello to all, i have a progam fragment here for the follow up of my
project ; mathematicl expression. i don t want to use pointers, this is
the fragment.my problem is there an alternative way of declaring and
defining my functions without using pointers,eg in the goToOp1
function, i don t wish to write "char*line".
this function gets the first operator in the mathematical expression
like 1+6*6/2.

//function declarations

int goToOp1(char* line, int startPos, int &curExprBegin);

int goToOp2(char* line, int startPos, int &curExprEnd);

void reduceArr(char* line, int curExprBegin, int curExprEnd, long
number);

void discardBadChar(char* line, bool &exit);

void errorOutput(const char* erroralert);

//function definitons, i did just the definition of one of the
functions

int goToOp1(char* line, int startPos, int &curExprBegin)
{
int pos=startPos-2;

int op1Size=0;

int answer;

answer = 0;
 
M

Mike Wahler

stanlo said:
Hello to all, i have a progam fragment here for the follow up of my
project ; mathematicl expression. i don t want to use pointers, this is
the fragment.my problem is there an alternative way of declaring and
defining my functions without using pointers,eg in the goToOp1
function, i don t wish to write "char*line".

If you insist upon using 'C-style' strings, pointers are
the only way to pass them to functions. However the C++
standard library provides a 'string' type (declared by standard
header said:
this function gets the first operator in the mathematical expression
like 1+6*6/2.

//function declarations

int goToOp1(char* line, int startPos, int &curExprBegin);

int goToOp1(const std::string& line,
std::string::size_type startPos,
int &curExprBegin);
int goToOp2(char* line, int startPos, int &curExprEnd);

int goToOp2(const std::string& line,
std::string::size_type startPos,
int &curExprEnd);
void reduceArr(char* line, int curExprBegin, int curExprEnd, long
number);

void reduceArr(const std::string& line,
int curExprBegin,
int curExprEnd,
long number);

BTW why do some of these take references to int, and some
int by value?
void discardBadChar(char* line, bool &exit);

void discardBadChar(const std::string& line, bool &exit);
void errorOutput(const char* erroralert);

void errorOutput(const std::string& erroralert);
//function definitons, i did just the definition of one of the
functions

int goToOp1(char* line, int startPos, int &curExprBegin)

int goToOp1(const std::string& line,
std::string::size_type startPos,
int &curExprBegin)
{
int pos=startPos-2;

std::string::size_type pos(startPos-2);

Why subtracting 2?
int op1Size=0;

int answer;

answer = 0;

Why not simply:

int answer(0);

Without more context, I cannot comment on whether your
other argument types and return types are appropriate.

-Mike
 

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

Forum statistics

Threads
473,777
Messages
2,569,604
Members
45,216
Latest member
topweb3twitterchannels

Latest Threads

Top