title: conversion from `double' to non-scalar type requested and some other errors
body: <p>Please read my code, and help me to debug it. because <code>Dev-C++</code> finds a lot of errors....</p>
  
  <pre><code>#include&lt;iostream.h&gt;
  #include&lt;conio.h&gt;
  using namespace std;
  
  struct iWorker{
         double salary;
  }
  
  double calSalary(iWorker worker){
      double money = worker.salary;
      return money;
  }
  
  int main(){
      iWorker worker;
  
      cout &lt;&lt; "Enter salary: ";
      cin &gt;&gt; worker.salary;
  
      double salary = calSalary(worker, 0);
      cout &lt;&lt; salary;
  
      getch();
      return 0;
  }
  </code></pre>
  
  <p>and errors:</p>
  
  <pre><code>9: error: new types may not be defined in a return type
  9: error: two or more data types in declaration of `calSalary'
   In function `iWorker calSalary(iWorker)':
  11: error: conversion from `double' to non-scalar type `iWorker' requested
  
   In function `int main()':
  9: error: too many arguments to function `iWorker calSalary(iWorker)'
  20: error: at this point in file
  20: error: cannot convert `iWorker' to `double' in initialization
  </code></pre>
  
  <p>Thank you ...</p>