C++关于静态成员函数的程序题(101)
#include<iostream>usingnamespacestd;classcount{staticintn;public:count(){n++;}statici...
#include <iostream>
using namespace std;
class count
{
static int n;
public:
count()
{
n++;
}
static int test()
{
for(int i=0;i<4;i++)
n++;
return n;
}
};
int count::n=0;
void main()
{
cout<<count::test()<<" ";
count c1,c2;
cout<<count::test()<<endl;
}
输出结果是4 10~~结果里4是怎么出来的?主函数的前两不太明白~第一个是调用的静态成员函数?第二个为什么有c1,c2两个对象?构造函数是在什么时候调用的呀,为什么两个对象不是调用两次?
这部分学的有点乱~程序稍微长点的就看不明白了~求指教~~!! 展开
using namespace std;
class count
{
static int n;
public:
count()
{
n++;
}
static int test()
{
for(int i=0;i<4;i++)
n++;
return n;
}
};
int count::n=0;
void main()
{
cout<<count::test()<<" ";
count c1,c2;
cout<<count::test()<<endl;
}
输出结果是4 10~~结果里4是怎么出来的?主函数的前两不太明白~第一个是调用的静态成员函数?第二个为什么有c1,c2两个对象?构造函数是在什么时候调用的呀,为什么两个对象不是调用两次?
这部分学的有点乱~程序稍微长点的就看不明白了~求指教~~!! 展开
展开全部
#include <iostream>
using namespace std;
class count
{
static int n; // 由于 n 是静态成员变量,因此可以看成是全局变量
public:
count()
{
n++;
}
static int test()
{
for(int i=0;i<4;i++)
n++;
return n;
}
};
int count::n=0; // n 被赋值为 0
void main()
{
cout<<count::test()<<" "; // 调用静态成员函数test(),n++调用了4次,因此打印4
count c1,c2; // 定义了count的对象,调用count的构造函数两次,n++了2次,因此 n 为6
cout<<count::test()<<endl; // 同理,n++调用了4次,因此打印10
}
using namespace std;
class count
{
static int n; // 由于 n 是静态成员变量,因此可以看成是全局变量
public:
count()
{
n++;
}
static int test()
{
for(int i=0;i<4;i++)
n++;
return n;
}
};
int count::n=0; // n 被赋值为 0
void main()
{
cout<<count::test()<<" "; // 调用静态成员函数test(),n++调用了4次,因此打印4
count c1,c2; // 定义了count的对象,调用count的构造函数两次,n++了2次,因此 n 为6
cout<<count::test()<<endl; // 同理,n++调用了4次,因此打印10
}
展开全部
很简单。代码:int count::n=0;是将static变量的n初始化为0。代码count::test()调用了count类中的test函数,此函数中,n被用for循环语句自加了4次,所以会显示“4”。然后又建立了c1、c2两个count类的变量,这时,count类中的构造函数count()会执行2次,由于是静态变量,故n在4的基础上又加了2,是6,这时,有用了cout<<count::test()<<endl;,n=6的基础上有自加4次,是10.
所以。结果是 4 10
所以。结果是 4 10
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
4是你调用了count类里面的函数,经过构造函数后,就会输出4。两个对象都会调用构造函数,这就是为什么一个对象比两个对象输出的结果要小一。你可以自己调试一下,我也是调试后看出来的。调试不会的话,你可以上网查查,或找找相关的书籍,对你写程序很有帮助的。希望能帮到你!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询