Roark Burney Roark Burney - 20 days ago 5
C++ Question

error: classname does not name a type

I'm an intermediate student starting on pointers. I'm trying to store data in an array to be called by a search function later. When I try to compile, I am told "error: retail does not name a type" and I don't understand what that means or how to fix it.

// ********************************************************
// Starting Out with C++ *
// From Control Stuctures through Objects *
// seventh edition *
// *
// Chapter 8 Searching and Sorting Arrays *
// *
// Serendipity Booksellers Software Development *
// Project — Part 8: A Problem-Solving Exercise *
// *
// Multi-File Program *
// ********************************************************
#include "bookinfo.h"
#include "cashier.h"
#include "invmenu.h"
#include "reports.h"
#include <iostream>
using namespace std;

// Constant for array sizes
const int SIZE = 20;
// Global Arrays
string bookTitle[SIZE];
string isbn[SIZE];
string author[SIZE];
string publisher[SIZE];
string dateAdded[SIZE];
int qtyOnHand[SIZE];
double wholesale[SIZE];
double retail[SIZE];

retail[SIZE] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};

wholesale[SIZE] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};

qtyOnHand[SIZE] = {10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10};


dateAdded[0] = "1/1";
dateAdded[1] = "1/1";
dateAdded[2] = "2/1";
dateAdded[3] = "3/1";
dateAdded[4] = "4/1";
dateAdded[5] = "5/1";
dateAdded[6] = "6/1";
dateAdded[7] = "7/1";
dateAdded[8] = "8/1";
dateAdded[9] = "9/1";
dateAdded[10] = "10/1";
dateAdded[11] = "11/1";
dateAdded[12] = "12/1";
dateAdded[13] = "13/1";
dateAdded[14] = "14/1";
dateAdded[15] = "15/1";
dateAdded[16] = "16/1";
dateAdded[17] = "17/1";
dateAdded[18] = "18/1";
dateAdded[19] = "19/1";


author[0] = "0";
author[1] = "1";
author[2] = "2";
author[3] = "3";
author[4] = "4";
author[5] = "5";
author[6] = "6";
author[7] = "7";
author[8] = "8";
author[9] = "9";
author[10] = "10";
author[11] = "11";
author[12] = "12";
author[13] = "13";
author[14] = "14";
author[15] = "15";
author[16] = "16";
author[17] = "17";
author[18] = "18";
author[19] = "19";

bookTitle[0] = "0";
bookTitle[1] = "1";
bookTitle[2] = "2";
bookTitle[3] = "3";
bookTitle[4] = "4";
bookTitle[5] = "5";
bookTitle[6] = "6";
bookTitle[7] = "7";
bookTitle[8] = "8";
bookTitle[9] = "9";
bookTitle[10] = "10";
bookTitle[11] = "11";
bookTitle[12] = "12";
bookTitle[13] = "13";
bookTitle[14] = "14";
bookTitle[15] = "15";
bookTitle[16] = "16";
bookTitle[17] = "17";
bookTitle[18] = "18";
bookTitle[19] = "19";

isbn[0] = "0";
isbn[1] = "1";
isbn[2] = "2";
isbn[3] = "3";
isbn[4] = "4";
isbn[5] = "5";
isbn[6] = "6";
isbn[7] = "7";
isbn[8] = "8";
isbn[9] = "9";
isbn[10] = "10";
isbn[11] = "11";
isbn[12] = "12";
isbn[13] = "13";
isbn[14] = "14";
isbn[15] = "15";
isbn[16] = "16";
isbn[17] = "17";
isbn[18] = "18";
isbn[19] = "19";


int main()
{
int choice = 0; // To hold the user's menu choice

// Display the menu until the user selects item 4
while (choice != 4)
{
cout << "Serendipity Booksellers\n";
cout << "\tMain Menu\n\n";

cout << "1.Cashier Module\n";
cout << "2.Inventory Database Module\n";
cout << "3.Report Module\n";
cout << "4.Exit\n\n";

// Get the menu choice as input from the user
cout << "Enter Your Choice: ";
cin >> choice;

// Validate the user's input
while (choice < 1 || choice > 4)
{
cout << "\nPlease enter a number in the range 1 - 4.\n";

cout << "Enter Your Choice: ";
cin >> choice;
}

// Display a selection message
{
switch (choice)
{
case 1:
cashier();
break;
case 2:
invMenu();
break;
case 3:
reports();
break;
case 4:
cout << "\nYou selected item 4.\n";
break;
}
}

cout << endl << endl;
}
return 0;
}


How am I failing to initialize the arrays? Have I formatted my declarations incorrectly?

Answer

You cannot initialize an array with:

retail[SIZE] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};

You can initialize it when it is declared.

double retail[SIZE] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};

Or you can set the values using a for-loop.

for (int i = 0; i < 20; ++i )
{
   retail[i] = i;
}