我声明 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;
有人告诉我,我声明 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;