C++:类定义下的对象成员,静态成员,以及静态成员函数的实现(1)

C++:类定义下的对象成员,静态成员,以及静态成员函数的实现(1),第1张

如果想要交一个在学术上交流的朋友的话,我很愿意成为大家的学术论友;私人QQ:1959919961(非诚勿扰,备注表明来意

我之前在一篇文章中,讲解了对象是什么,对于一些刚看我文章的朋友,我在这里再次简单的描述一下,如果想要更加深入的了解,就请就看我之前发表的文章。

我们知道,c++,是一门面向对象的编程。

那么何为对象,以及我们这里所说的对象成员又是啥?

对象,通俗地来说,就是相当于c语言里面地变量。

我们通常会将对象与类放在一起讲,类,就相当于c语言里面地数据类型。

ok,我们引入对象成员。

对象成员:在定义一个新的类型时,可以用已有地类 类型实例化对象作为新类地数据成员使用。

这句话可能有点不好理解,我们来看代码:

#include
using namespace std;
class A
{
public:
	A()
	{
		cout << "创建A" << endl;
	}
	~A()
	{
		cout << "析构A" << endl;
	}
};
	class B
	{
	public:
		B()
		{
			cout << "创建B" << endl;
		}
		~B()
		{
			cout << "析构B" << endl;
		}
	private:
		A a;
	};
	int main()
	{
		B obj;
		return 0;
	}

上面代码为我们展示了对象成员地构造,它与其他类函数一样,也需要构造函数,结束调用是需要析构函数。

(我也在之前文章讲过何为析构函数。

)我们现在再看对像成员的定义,是不是很清楚,也就是说,我们将一个类进行实例化,并且在另一个中作为数据成员,此时的实例化类就具有了两个身份。

我们接下来来讲静态成员与静态函数:

请大家看一个代码:

#include
#include
using namespace std;
class croster
{
public:
	static int count;
private:
	string name;
	int Math;
	int English;
	int Sum;
public:
	croster(string na = "undef", int m = 100, int e = 100);
	void display();
	int cumulation();
	void display()const;
};
int croster::count = 100;
croster::croster(string na, int m, int e):name(na),Math(m),English(e)
{
	cout << "Welcome new class." << endl;
	Sum = Math + English;
	count--;
}
void croster::display()const
{
	cout << name << endl;
	cout << "Math:" << Math << endl;
	cout << "English:" << English << endl;
	cout << "Sum:" << Sum << endl;
}
int croster::cumulation()
{
	Sum = Math + English;
	return Sum;
}
int main()
{
	cout << "Number of all student=" << croster::count << endl;
	croster list[3];
	cout << "Number of all student=" << list[1].count<< endl;
	croster stu_A;
	cout << "Number of all student=" << stu_A.count<< endl;
	cout << "Number of all student=" << croster::count << endl;
	return 0;
}

壹、 静态数据成员

(1)静态数据成员格式如下:

static 类型 静态数据成员名;

例:static int count;

(2)这里要注意一下,静态数据成员一定要初始化,且必须在类外实现。

格式如下:

类型 类名 ::静态数据成员名=初始值;

例如:int croster::count(100);

(3)在C++中对于赋值有几种形式,大家需要了解一下哦!

贰、静态成员函数

大家看一下上面代码的公有属性中,对静态成员数据的定义。

如果这里的公有属性变成私有属性,那么以下对于count(静态数据成员)的访问,都将是被拒之门外,那么如何解决这一问题,方法是就是我们下面所讲的静态成员函数。

我们这里所讲的静态成员函数,里面没有this指针,所以只能访问静态成员。

我们以上面的代码为例,我们引用代码中的display()。

修改如下;

static   void   diaplay ()

{

cout<

}

本章讲解到此为止,我会之后推出(2)。

(如果里面讲的内容有什么错误,欢迎大家来指正!)

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/673358.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-19
下一篇 2022-04-19

发表评论

登录后才能评论

评论列表(0条)

保存