【发布时间】:2016-11-27 08:50:28
【问题描述】:
#include <iostream>
using namespace std;
class First{
public:
void fun()
{
cout<<"base fun called\n";
}
};
class Second{
public:
static First x; //Line 1
static First *y; //Line 2
};
First Second::x; //Line 3
First* Second::y; //Line 4
int main()
{
Second::x.fun();
Second::y->fun();
return 0;
}
第 1 行和第 2 行是声明,第 3 行和第 4 行是定义,这是我从其他一些关于静态成员的 stackoverflow 帖子中了解到的。
第一季度。为什么我们必须像这样定义静态对象? (第 3 行和第 4 行)
第二季度。 x 和 y 有什么区别?(第 1 行和第 2 行)
第三季度。为 x 和 y 对象分配的内存在哪里?(第 3 行和第 4 行)
【问题讨论】:
-
你真的应该一次问一个问题。
-
你真的在问对象和指向对象的指针有什么区别吗?静态根本不会改变这一点。并且没有指向静态对象的指针。有一个指向对象的静态指针。
标签: c++ static-members