预测以下C++程序的输出。
#include
using namespace std;
class A
{
private:
int x;
public:
A(int _x) { x = _x; }
int get() { return x; }
};
class B
{
static A a;
public:
static int get()
{ return a.get(); }
};
int main(void)
{
B b;
cout << b.get();
return 0;
}
(A) 0
(B)链接器错误:未定义引用B :: a
(C)链接器错误:无法访问静态
(D)链接器错误:具有相同名称的多个函数get()答案: (B)
说明:存在编译器错误,因为未在B中定义静态成员a。
要解决该错误,我们需要显式定义a。以下程序运行正常。
#include
using namespace std;
class A
{
private:
int x;
public:
A(int _x) { x = _x; }
int get() { return x; }
};
class B
{
static A a;
public:
static int get()
{ return a.get(); }
};
A B::a(0);
int main(void)
{
B b;
cout << b.get();
return 0;
}
这个问题的测验
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。