Redian新闻
>
私有成员不能用类成员函数修改?
avatar
私有成员不能用类成员函数修改?# Programming - 葵花宝典
m*o
1
如果注释private,编译就能通过
#include
using namespace std;
template
class c_array {
//friend int sum(c_array &a);
public:
c_array(T s): size(s) { a = new T[size]; }
T& operator[](int i);
int get_size() { return size; }
bool operator < (c_array &x);
private:
int size;
int *a;
};
template
T sum(c_array& a){
T result = 0;
int size = a.get_size();
for ( int i = 0; i < size; i++ )
result += a[i];
return result;
}
avatar
P*e
2
你在main里面直接用 . 去使用private,当然不行拉
class c_array{
public getArrayElement(int n){if(n}

【在 m*******o 的大作中提到】
: 如果注释private,编译就能通过
: #include
: using namespace std;
: template
: class c_array {
: //friend int sum(c_array &a);
: public:
: c_array(T s): size(s) { a = new T[size]; }
: T& operator[](int i);
: int get_size() { return size; }

avatar
m*o
3
为什么在main里面直接用 . 去使用private不行?
我定义的类对象A[3]就是c_array啊,然后用他自己的成员函数T& operator[](int i)
来调用私有成员
avatar
s*u
4
人生就是这样的

)

【在 m*******o 的大作中提到】
: 为什么在main里面直接用 . 去使用private不行?
: 我定义的类对象A[3]就是c_array啊,然后用他自己的成员函数T& operator[](int i)
: 来调用私有成员

avatar
e*a
5
should be:
A[0][0] = 2; A[0][1] = 4; A[0][2] = 1;
A[1][0] = 5; A[1][1] = 3; A[1][2] = 7;
A[2][0] = 0; A[2][1] = 3; A[2][2] = 2;
for ( int i = 0; i < num; i++)
cout << A[0][i] << ' ';
cout << endl;
for ( int i = 0; i < num; i++)
cout << A[1][i] << ' ';
cout << endl;
for ( int i = 0; i < num; i++)
cout << A[2][i] << ' ';
cout << endl;
avatar
c*x
6
template
T sum(c_array& a){ T result = 0;
int size = a.get_size();
for ( int i = 0; i < size; i++ )
result += a[i];
return result;
}
avatar
z*e
7
然后用他自己的成员函数T& operator[](int i) 来调用私有成员
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
you didn't.

)

【在 m*******o 的大作中提到】
: 为什么在main里面直接用 . 去使用private不行?
: 我定义的类对象A[3]就是c_array啊,然后用他自己的成员函数T& operator[](int i)
: 来调用私有成员

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。