1 个回答
骇熊的锅
回答于 2024-07-20
已采纳
提问:C++程序改错
#include <iostream>using namespace std;class A{public: A(int x):a1(x) {} static void fun(int x) { A t(x); cout<<"a1="<<a1<<endl; cout<<"a2="<<a2<<endl; }private: int a1; int a2;};static int A::a2=10; int main(){ int x; cin>>x; A::fun(x); return 0;}
网友回答:
修改好的
#include <iostream>
using namespace std;
class A
{
public:
A(int x):a1(x)
{}
static void fun(int x)
{
A t(x);
//a1非静态变量,不能在静态函数中直接使用
cout<<"a1="<<t.a1<<endl;
cout<<"a2="<<a2<<endl;
}
private:
int a1;
static int a2; //a2必须是静态的
};
int A::a2=10; //类静态初始化前面不能再加 static
int main()
{
int x;
cin>>x;
A::fun(x);
return 0;
}
我来回答
相关问题
1
回答
游戏王卡组推荐
单机游戏
567 浏览