I am refreshing my self on C++ (have not did it since school) and I wrote a simple program just to mess around. My problem is when I compile the program it chokes stating "error: expected initializer before 'stringThing'" is there a reason why this is doing this? I know this may be a noob question so I checked stackoverflow and could not find any relevant questions that gave me a answer.
*I am using GNU GCC compiler
Code:
#include <iostream>
using namespace std;
void string stringThing (string shiftdir, string &teststring)
{
if (shiftdir == "right")
{
teststring = teststring >> " " >> "Bit Shifted right";
}
else
{
teststring = teststring << " " << "Bit Shifted left";
}
}
int main()
{
string test;
cout << stringThing("right", "I have done a ") << endl;
return 0;
}
The return type for stringThing
must be either void
or string
, not both. You also must include <string>
, if you want to use string.
Since you want to output the return value of stringThing()
in main
, I guess it should be
std::string stringThing (std::string shiftdir, const std::string &teststring)
But then, you must also return a string from your function
if (shiftdir == "right")
return teststring + " " + "Bit Shifted right";
else
return teststring + " " + "Bit Shifted left";
for example.
Your parameter std::string &teststring
won't work with your const char*
argument. So either declare it as a copy by value string
only, or better const string&
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With