C++未声明的类错误

C++ Undeclared Class Error

本文关键字:错误 未声明 C++      更新时间:2023-10-16

我是C++的新手,正在尝试学习类,但遇到了一些小代码。我已经做了一个LIBRARYITEM类及其给出的错误。我使用了两个公共函数INPUT(),它接受输入,PURCHASE()询问用户他希望购买多少本书。这是代码-

#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
    LIBRARYITEM LIBRARYITEM;
    LIBRARYITEM.INPUT();
    LIBRARYITEM.PURCHASE();
}
class LIBRARYITEM
{
public:
    void INPUT();
    void PURCHASE();
private:
    int ITEM_NO;
    char ITEMTITLE;
    float PRICE;
    int TOTALCOAST(int N);
};
void LIBRARYITEM::INPUT() {
    cout << "PLease input item no. - ";
    cin >> ITEM_NO;
    cout << "Please input title- ";
    cin >> ITEMTITLE;
    // We will assume price that per copy is 100$
    PRICE = 100;
}
void LIBRARYITEM::PURCHASE() {
    cout << "How many copies you wish to buy - ";
    int N;
    cin >> N;
    cout << "Total cost for books is - ";
    cout << TOTALCOAST(N);
}
int LIBRARYITEM::TOTALCOAST(int N) {
    return N * PRICE;
}

错误日志是-

Error   1   error C2065: 'LIBRARYITEM' : undeclared identifier  z:csci 125projectsproject1project1source.cpp   8   1   Project1
Error   2   error C2146: syntax error : missing ';' before identifier 'LIBRARYITEM' z:csci 125projectsproject1project1source.cpp   8   1   Project1
Error   3   error C2065: 'LIBRARYITEM' : undeclared identifier  z:csci 125projectsproject1project1source.cpp   9   1   Project1
Error   4   error C2228: left of '.INPUT' must have class/struct/union  z:csci 125projectsproject1project1source.cpp   9   1   Project1
Error   5   error C2065: 'LIBRARYITEM' : undeclared identifier  z:csci 125projectsproject1project1source.cpp   10  1   Project1
Error   6   error C2228: left of '.PURCHASE' must have class/struct/union   z:csci 125projectsproject1project1source.cpp   10  1   Project1

将类声明移动到main()之上。在main()中,声明类的实例,尽量不要将该实例(或变量)命名为与类本身相同的名称。

int main()
{
    LIBRARYITEM item;
    item.INPUT();
    item.PURCHASE();
}

我不知道C++为什么编译得如此愚蠢,只是把main()放在程序的末尾,就像charm-一样

#include <iostream>
#include <iomanip>
using namespace std;

class LIBRARYITEM
{
public:
    void INPUT();
    void PURCHASE();
private:
    int ITEM_NO;
    char ITEMTITLE;
    float PRICE;
    int TOTALCOST(int N);
};
void LIBRARYITEM::INPUT() {
    cout << "PLease input item no. - ";
    cin >> ITEM_NO;
    cout << "Please input title- ";
    cin >> ITEMTITLE;
    // We will assume price that per copy is 100$
    PRICE = 100;
}
void LIBRARYITEM::PURCHASE() {
    cout << "How many copies you wish to buy - ";
    int a;
    cin >> a;
    cout << "Total cost for books is  $ ";
    cout << TOTALCOST(a);
}
int LIBRARYITEM::TOTALCOST(int N) {
    return N * PRICE;
}
int main()
{
    LIBRARYITEM LIBRARYITEM;
    LIBRARYITEM.INPUT();
    LIBRARYITEM.PURCHASE();
    system("pause");
    return 0;
}