C++ 未声明的类错误

标签 c++ class

我是 C++ 新手,正在尝试学习类(class),但被一些代码弄乱了。我创建了一个 LIBRARYITEM 类及其给出的错误。我使用两个公共(public)函数 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 125\projects\project1\project1\source.cpp   8   1   Project1
Error   2   error C2146: syntax error : missing ';' before identifier 'LIBRARYITEM' z:\csci 125\projects\project1\project1\source.cpp   8   1   Project1
Error   3   error C2065: 'LIBRARYITEM' : undeclared identifier  z:\csci 125\projects\project1\project1\source.cpp   9   1   Project1
Error   4   error C2228: left of '.INPUT' must have class/struct/union  z:\csci 125\projects\project1\project1\source.cpp   9   1   Project1
Error   5   error C2065: 'LIBRARYITEM' : undeclared identifier  z:\csci 125\projects\project1\project1\source.cpp   10  1   Project1
Error   6   error C2228: left of '.PURCHASE' must have class/struct/union   z:\csci 125\projects\project1\project1\source.cpp   10  1   Project1

最佳答案

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

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

关于C++ 未声明的类错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29135233/

相关文章:

c++ - c++ 中 make_unique 和 make_unique 与 reference_wrapper 的区别

python - 从扩展类更新字典属性会更新基类。为什么?

java - 在 Java 的 String 类中重新创建 valueOf(double d)

java - 从java中的另一个类访问静态变量

c# - 不包含静态 'Main' [但确实如此?]

C++方法应该接受指向指针的指针,接收地址并且仍然有效

c++ - 在 C++ 中访问 LPT

c++,如何将 vector 复制到 vector 的 vector 中?

c++ - 在另一个文件夹中包含子项目 .pri

c++ - 为什么一定要Forward声明一个类,在一个头文件中包含对应的头文件