C++简单类输出的问题

来源:百度知道 编辑:UC知道 时间:2024/06/10 09:53:03
#include <iostream>
using namespace std;

class bo
{
public:
bo()
{
a=1;
b=2;
c=3;
}

void pri();
private:
int a;
int b;
int c;
};

void bo::pri()
{
cout<<a<<b<<c<<endl;
}

int main()
{bo clp,pp;
cout<<clp.a<<endl;
clp.pri();
pp.pri();
return 0;

}
出现44.cpp
E:\MSDev98\MyProjects\7777\44.cpp(28) : error C2248: 'a' : cannot access private member declared in class 'bo'
E:\MSDev98\MyProjects\7777\44.cpp(16) : see declaration of 'a'
执行 cl.exe 时出错.

#include <iostream>
using namespace std;

class bo
{
public:
bo()
{
a=1;
b=2;
c=3;
}
geta(){return a;} //添加的
void pri();
private:
int a;
int b;
int c;
};

void bo::pri()
{
cout<<a<<b<<c<<endl;
}

int main()
{bo clp,pp;
cout<<clp.geta()<<endl;
clp.pri();
pp.pri();
return 0;

}

clp.a是私有成员,类外无法访问。
去掉这句就可运行:
cout<<clp.a<<endl;

私有成员可以通过类中方法访问,其他类(友元除外)和函数不可以访问

private声明的是私有成员;
私有成员只能本类的成员函数访问,在类外不能访问;
如果你要访问的话,可以再声明一个公有的成员函数void geta(){return a;}

#83 没看出来那里错了!