c16_12.cpp

来自「这是编程之道C-C++中的源代码,很简练,可以用于相关教学和重新熟悉C-C++时」· C++ 代码 · 共 44 行

CPP
44
字号
#include <iostream >
using namespace std;

class A 
{
private:
	static int s_var1;
	static int GetVar1() { return s_var1;}
public:
	static int s_var2;
	static int GetVar2() { return s_var2;}
};

int A::s_var1 = 11;
int A::s_var2 = 10;

class B : public A
{
	int m_varB;
public:
	//存取访问函数
	void SetVar(int i=0)
	{
		m_varB = i;
	}
	int GetVar( ) { return m_varB; }
};

int main()
{
	A	ob_a;
	B	ob_b;
	cout << "ob_b.GetVar2() = " << ob_b.GetVar2() <<endl;
	ob_a.s_var2 = 77; //通过基类A的对象ob_a改变静态成员s_var2的值
	cout << "ob_b.GetVar2() = " << ob_b.GetVar2() <<endl;
	ob_b.s_var2 = 11; //通过派生类B的对象ob_b改变静态成员s_var2的值
	cout << "ob_a.GetVar2() = " << ob_a.GetVar2() <<endl;
	//下面的两条语句不能通过编译,考虑是什么原因???
	//cout << "ob_b.GetVar1() = " << ob_b.GetVar1() <<endl; 
	//cout << "ob_b.s_Var1 = " << ob_b::s_var1 <<endl;

	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?