C++/Function/Function Prototype

Материал из C\C++ эксперт
Перейти к: навигация, поиск

Function prototype in C++

<source lang="cpp">

  1. include <iostream>
  2. 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">

  1. include <fstream>
  2. include <iostream>
  3. include <vector>
  4. include <string>
  5. 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">

  1. include <iostream>

using namespace std; void printMessage(void); // this is the prototype! int main () {

  printMessage(); 
  return 0;

} void printMessage (void) {

  cout << "Hello world!";

}


 </source>