title: Error: Conversion to non-scalar type
body: <p>I am making a set of derived classes for an assignment. I am instructed to use char arrays (c-strings). When I compile I keep getting the error: </p>
  
  <pre><code>Homework11.cpp: In function âint main()â:
  Homework11.cpp:72: error: conversion from âchar [10]â to non-scalar type âBusinessâ requested
  Homework11.cpp:73: error: conversion from âchar [10]â to non-scalar type âBusinessâ requested
  Homework11.cpp:74: error: conversion from âchar [10]â to non-scalar type âAccountâ requested
  Homework11.cpp:75: error: conversion from âchar [10]â to non-scalar type âAccountâ requested
  </code></pre>
  
  <p>I am fairly certain that my problem is originating up where I try to set the instance variable Name to the argument sent in. Here is my code with comments in where I believe the problems may be. </p>
  
  <pre><code>#include &lt;iomanip&gt;
  #include &lt;iostream&gt;
  #include &lt;cstdlib&gt;
  #include &lt;cstring&gt;
  using namespace std;
  
  class Person{
  public:
          Person() {}
          Person(char theName[]) {strcpy(name,theName);}
          void getName(char theName[]) // I think the problem may be here or in the line above
                  { theName = name;}
  private:
          char name[80];
   };
  
  class Account : public Person{
  public:
          Account() :accountNum(0),balance(0) {}
          Account(int actNo, char theName[])
                  :Person(theName),accountNum(actNo),balance(0) {}
          void setBal(float theBalance)
                  {balance = theBalance;}
          void deposit(float numDeposited)
                  { balance = balance + numDeposited;}
          float withdraw(float numWithdrawn)
                  { balance = balance -numWithdrawn;
                    return numWithdrawn;}
          float getBal() {return balance;}
          void printBal();
  private:
          int accountNum;
          float balance;
  };
  
   class Business : public Account{
   public:
          Business() : checkFee(0.0) {}
          Business(int actNo, char theName[])
                  : Account(actNo, theName),checkFee(0.0) {}
          float withdraw(float numWithdrawn)
                  {float newBalance = getBal()-numWithdrawn-checkFee;
                   setBal(newBalance);
                    return numWithdrawn;}
          void setFee(float fee) {checkFee = fee;}
   private:
          float checkFee;
  };
  
  void Account::printBal()
  {
          char name[80];
          getName(name);
          cout&lt;&lt;setw(10)&lt;&lt;"Account # "&lt;&lt;accountNum&lt;&lt;setw(10)&lt;&lt;
                name&lt;&lt;setw(10)&lt;&lt;balance&lt;&lt;endl;
  }
  
  
  int main()
  {
          char businessName1[10]="Business1";
          char businessName2[10] ="Business2";
          char regularName1[10] = "Regular1";
          char regularName2[10] = "Regular2";
  
         //The following 4 lines are the ones I am getting the error for
          Business bs1 = (1,businessName1);
          Business bs2 = (2,businessName2);
          Account rg1 = (1, regularName1);
          Account rg2 = (2, regularName2);
  
          cout&lt;&lt;"Intially: "&lt;&lt;endl;
          rg1.printBal();
          rg2.printBal();
          bs1.printBal();
          bs2.printBal();
  
          bs1.deposit(1000.00);
          bs2.deposit(1000.00);
          rg1.deposit(1000.00);
          rg2.deposit(1000.00);
  
          cout&lt;&lt;"----------------------------------------"&lt;&lt;endl;
         cout&lt;&lt;"After adding 1000.00 to all accounts:"&lt;&lt;endl;
          rg1.printBal();
          rg2.printBal();
           bs1.printBal();
          bs2.printBal();
  
          bs1.setFee(1.00);
          bs1.withdraw(500);
          bs2.withdraw(500);
          bs1.deposit(250);
          bs2.deposit(250);
          rg1.withdraw(500);
          rg2.deposit(500);
  
          cout&lt;&lt;"---------------------------------------"&lt;&lt;endl;
          cout&lt;&lt;"Finially:"&lt;&lt;endl;
          rg1.printBal();
          rg2.printBal();
          bs1.printBal();
          bs2.printBal();
  
          return 0;
  }
  </code></pre>