C++/Function/Function Prototype
Function prototype in C++
#include <iostream>
#include <cstring>
using namespace std;
void reverse(char *str, int count = 0);
int main()
{
char *s1 = "This is a test.";
char *s2 = "I like C++.";
reverse(s1); // reverse entire string
reverse(s2, 7); // reverse 1st 7 chars
cout << s1 << "\n";
cout << s2 << "\n";
return 0;
}
void reverse(char *str, int count)
{
int i, j;
char temp;
if(!count) count = strlen(str)-1;
for(i = 0, j=count; i <j; i++, j--) {
temp = str[ i ];
str[ i ] = str[j];
str[j] = temp;
}
}
function prototype with throw signature
#include <fstream>
#include <iostream>
#include <vector>
#include <string>
#include <stdexcept>
using namespace std;
void readIntegerFile(const string& fileName, vector<int>& dest) throw (invalid_argument, runtime_error);
void readIntegerFile(const string& fileName, vector<int>& dest)
throw (invalid_argument, runtime_error)
{
ifstream istr;
int temp;
istr.open(fileName.c_str());
if (istr.fail()) {
throw invalid_argument("");
}
while (istr >> temp) {
dest.push_back(temp);
}
if (istr.eof()) {
istr.close();
} else {
istr.close();
throw runtime_error("");
}
}
int main(int argc, char** argv)
{
vector<int> myInts;
const string fileName = "IntegerFile.txt";
try {
readIntegerFile(fileName, myInts);
} catch (const invalid_argument& e) {
cerr << "Unable to open file " << fileName << endl;
exit (1);
} catch (const runtime_error& e) {
cerr << "Error reading file " << fileName << endl;
exit (1);
}
for (size_t i = 0; i < myInts.size(); i++) {
cout << myInts[i] << " ";
}
return (0);
}
How to prototype the printMessage function
#include <iostream>
using namespace std;
void printMessage(void); // this is the prototype!
int main ()
{
printMessage();
return 0;
}
void printMessage (void)
{
cout << "Hello world!";
}