Connecting Tech Pros Worldwide Help | Site Map

alternative for pointers

  #1  
Old July 23rd, 2005, 12:32 AM
stanlo
Guest
 
Posts: n/a
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;

  #2  
Old July 23rd, 2005, 12:32 AM
Mike Wahler
Guest
 
Posts: n/a

re: alternative for pointers


"stanlo" <mungwest@yahoo.com> wrote in message
news:1105307821.732625.54300@c13g2000cwb.googlegro ups.com...[color=blue]
> 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".[/color]

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 <string>). Look it up in your C++ textbook.
[color=blue]
> 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);[/color]

int goToOp1(const std::string& line,
std::string::size_type startPos,
int &curExprBegin);
[color=blue]
>
> int goToOp2(char* line, int startPos, int &curExprEnd);[/color]

int goToOp2(const std::string& line,
std::string::size_type startPos,
int &curExprEnd);
[color=blue]
>
> void reduceArr(char* line, int curExprBegin, int curExprEnd, long
> number);[/color]

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?
[color=blue]
>
> void discardBadChar(char* line, bool &exit);[/color]

void discardBadChar(const std::string& line, bool &exit);
[color=blue]
>
> void errorOutput(const char* erroralert);[/color]

void errorOutput(const std::string& erroralert);
[color=blue]
>
> //function definitons, i did just the definition of one of the
> functions
>
> int goToOp1(char* line, int startPos, int &curExprBegin)[/color]

int goToOp1(const std::string& line,
std::string::size_type startPos,
int &curExprBegin)
[color=blue]
> {
> int pos=startPos-2;[/color]

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

Why subtracting 2?
[color=blue]
>
> int op1Size=0;
>
> int answer;
>
> answer = 0;[/color]

Why not simply:

int answer(0);

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

-Mike


Closed Thread


Similar Threads
Thread Thread Starter Forum Replies Last Post
Sizeof for pointers Avinash answers 15 December 26th, 2006 11:35 PM
What is the best alternative for realloc in C++ Kumar answers 18 July 22nd, 2005 10:05 AM
What is the best alternative for realloc in C++ Kumar answers 18 July 22nd, 2005 09:36 AM
Looking for technique examples - text transcript alternative for movies (MPEG, AVI, etc) EightNineThree answers 0 July 20th, 2005 04:33 PM