C++/Function/Function Prototype
Function prototype in C++
<source lang="cpp">
- 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; }
}
</source>
function prototype with throw signature
<source lang="cpp">
- 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);
}
</source>
How to prototype the printMessage function
<source lang="cpp">
- include <iostream>
using namespace std; void printMessage(void); // this is the prototype! int main () {
printMessage(); return 0;
} void printMessage (void) {
cout << "Hello world!";
}
</source>