I'm trying to write a class that will read and organize the command line arguments of a program.
Like, it will read -a as a 'switch', and --abcd as a 'switch' and you can define different switches as having parameters, so -a bc de fg will have bc and de as its parameters (that MUST go after -a if -a is defined as having two parameters) and fg would (if -a was only defined as having two parameters) be a standalone "statement"... anyway,
is it possible to overload the [] brackets in a class?
Say if -a had two switches, and there was an object aswitch for that switch...

cout<< aswitch; would output true if -a was set, false if otherwise,
cout<< aswitch[0]; would output the first parameter, and
cout<< aswitch[1]; would output the second.
right now I just have bool aswitch::isSet(); and char* aswitch::params(int);

Also, I don't know if i have the right understanding of "friend" functions...

class className{
public:
    friend int funcName();
protected:
    static char* varName;
};

int funcName(){
className varName = "newValue";
return 0;
}

making a "friend" function gives just a normal function outside a class access to that class's protected members right? Did I use it correctly in this example?

Recommended Answers

All 2 Replies

ah, thank you

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.