#include<iostream> using namespace std; class Internet { public: Internet(char *name,char *address) { strcpy(Internet::name,name); strcpy(Internet::address,address); count++; } static void Internet::Sc() { cout<<count<<endl; } Internet &Rq(); public: char name[20]; char address[20]; static int count; }; Internet& Internet::Rq(){ return *this; } int Internet::count = 0; void vist() { Internet a1("abc","www.cndev-lab.com"); Internet a2("123","www.cndev-lab.com"); } void fn(Internet s) { cout<<s.Rq().count<<endl; } void main() { cout<<Internet::count<<endl; vist(); Internet::Sc(); Internet b("sina","www.cndev-lab.com"); Internet::Sc(); fn(b); fn(b); }运行结果是什么
时间: 2024-04-26 15:21:18 浏览: 8
该程序存在一些语法错误,无法直接运行。以下是修正后的代码:
```
#include<iostream>
#include<cstring>
using namespace std;
class Internet {
public:
Internet(char *name, char *address) {
strcpy(Internet::name, name);
strcpy(Internet::address, address);
count++;
}
static void Sc() {
cout << count << endl;
}
Internet& Rq();
public:
char name[20];
char address[20];
static int count;
};
Internet& Internet::Rq() {
return *this;
}
int Internet::count = 0;
void vist() {
Internet a1("abc", "www.cndev-lab.com");
Internet a2("123", "www.cndev-lab.com");
}
void fn(Internet s) {
cout << s.Rq().count << endl;
}
int main() {
cout << Internet::count << endl;
vist();
Internet::Sc();
Internet b("sina", "www.cndev-lab.com");
Internet::Sc();
fn(b);
fn(b);
return 0;
}
```
运行结果是:
```
0
2
1
1
```
解释:
程序定义了一个Internet类,包括一个构造函数、一个静态成员函数Sc和一个Rq函数。在主函数中,首先输出Internet类的静态成员变量count的值,为0。接着调用vist函数,该函数创建了两个Internet对象,这时count的值变为2。然后调用Internet类的静态成员函数Sc,输出count的值,为2。接着创建了一个名为b的Internet对象,并将其传递给fn函数进行处理。fn函数中调用了Rq函数,其返回当前对象本身的引用,再通过引用访问count的值并输出,为1。最后再次调用fn函数,输出count的值仍为1。程序运行完毕,返回0。