是否有可能声明一个类而不实现它? (C ++)
-
22-08-2019 - |
题
我知道问题似乎暧昧,但我想不出任何其他的方式把它,但是,是否有可能做这样的事情:
#include<iostream>
class wsx;
class wsx
{
public:
wsx();
}
wsx::wsx()
{
std::cout<<"WSX";
}
解决方案
是,这是可能的。以下只是声明wsx
class wsx;
那种声明的被称为前向声明,因为当两个类是指彼此需要它的:
class A;
class B { A * a; };
class A { B * b; };
需要其中之一被向前声明然后
其他提示
这是类定义
class wsx
{
public:
wsx();
}
这是构造的定义
wsx::wsx()
{
std::cout<<"WSX";
}
这是一个前向声明,指出该类将被定义某处
class wsx;
在您的例子中,
class wsx; // this is a class declaration
class wsx // this is a class definition
{
public:
wsx();
}
所以,是通过使用class wsx;
能够声明一个类而不定义它。类声明可以声明指针及该类引用,而不是类的实例。编译器需要的类定义,以便它知道多少内存来分配为类的实例。
是。但它是的不强>可以定义一个类没有声明它。
由于:每个定义也是声明
您没有定义的类。它没有任何数据成员,但是这不是必要的。
我不知道你的意思。您粘贴的代码看起来是正确的。
不隶属于 StackOverflow