我声明 Abstract-Class wrong/not 的方式是否常见?

Is the way i declared the Abstract-Class wrong/not common?

有人告诉我,我声明 Abstract-Class 的方式是错误的或未在 C++ 中使用,但它仍然有效。 我找不到任何有用的资源来对此发表意见,所以我想知道是否 unusual/wrong/right 以这种方式进行编程。

#pragma once


class TestClass abstract
{

public:

    void test();

    TestClass();
    ~TestClass();
};



int main()
{
    std::cout << "Hello World!\n"; 

    TestClass baum;
}

错误(活动)E0322 不允许摘要 class 的“TestClass”类型的对象:test

我无法创建 "TestClass" 的任何对象,所以我的猜测是可行的,但我的老师告诉我这是错误的。

在 C++ 中没有明确的关键字使您的 class 抽象。您的代码不应编译,因为 abstract 不是 C++ 关键字,您可能正在使用编译器扩展来避免它被该关键字绊倒。

在 C++ 中创建抽象 class 的方法是声明一个或多个纯虚函数,例如您的 test

virtual void test() = 0;