Override-able functions? :s

DrEvil

FCRI Associate!
Reaction score
111
Like I don't know if I'm just being stupid or just having a mind block...
But I have this function in a separate file: fileB.cpp , the function is called 'doSomething' ( very unoriginal.... I blame WC3 for the func name...)
I want the function to do nothing on its own, but have it override-able in another file:

fileB.cpp:
Code:
void doSomething(vars){ // the original function which is located in fileB
  // do nothing....
}
fileA.cpp:
Code:
(override)void doSomething(vars){// override the function
    doSomethingElse();
    // Actually doing something!
}

Like I tried a few things... Google'd it a few times... (Maybe I'm just blind...) Pulled a few hairs out trying to accomplish basic code :mad:

Can anyone put me out of my misery and help me, thanks.

Edit: The functions are just standalone functions, not in a class.
 

UnknowVector

I come from the net ... My format, Vector.
Reaction score
144
I have no idea what you want. You can't have a function that does nothing in one file and something in another. You can overload the function, creating two functions with different argument lists but the same name (really they are entirely different functions), is that what you want? You can also declare a function in file B but define it in file A: this is especially useful in case of circular dependencies.

What you are asking for makes no sense. What in the world are you actually trying to do?
 

GFreak45

I didnt slap you, i high 5'd your face.
Reaction score
130
im pretty sure hes talking about function declarations and definitions, that is what is called a prototype function and you dont include the {}s or it wont work, ie:

Code:
void DoStuff (int); //prototype, parameters dont need names
void DoStuff (int x) //function definition, requires names for the parameters and can use the {}s
{
    ... some functions using x
}

an overloaded function is a function with DIFFERENT parameters, allowing it to be distinguished between via parameters. IE:
Code:
void DoStuff (int);
void DoStuff (double);
if you call it with a decimal number or a double variable, it will call the second one, if you do it with an int it will call the first.
 

seph ir oth

Mod'n Dat News Jon
Reaction score
262
I have no idea what you want. You can't have a function that does nothing in one file and something in another.

Code:
template <typename T>
T f(T a,T b){
    return a+b;
}

???

Just overload that :p
 

Hatebreeder

So many apples
Reaction score
381
First of all, "override" means that you have a function with the same name but with different parameters ( some people also call it "shadowing" ). Since both your functions have the same parameters, you'll get an error. However, I'm not sure if both of these functions have to be in a class or not, but to put things in classes is always a good idea.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top