You are not calling your functions correctly. Calling a function with a reference as a parameter is not really any different than any other type of function; just like srand(), you shouldn't be putting the type inside the parentheses when calling your functions.
You are trying to convert a string into an int implicitly. That is a no-go in C++. You can use atoi to convert it but it's not something a newbie should be doing.
I would use an enumerated type that defines what lunge, slash, and stab are as integers
enum Attack { LUNGE = 10, SLASH = 8, STAB = 15 };
if (attack == "l")
{
int l = lunge(LUNGE);
cout << "You hit a " << l << endl;
}
if (attack == "sl")
{
int sl = slash(SLASH);
cout << "You hit a " << sl << endl;
}
if (attack == "s")
{
int s = stab(STAB);
cout << "You hit a " << s << endl;
}