m*******o 发帖数: 264 | 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;
} |
P********e 发帖数: 2610 | 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; }
|
m*******o 发帖数: 264 | 3 为什么在main里面直接用 . 去使用private不行?
我定义的类对象A[3]就是c_array啊,然后用他自己的成员函数T& operator[](int i)
来调用私有成员 |
s****u 发帖数: 118 | 4 人生就是这样的
)
【在 m*******o 的大作中提到】 : 为什么在main里面直接用 . 去使用private不行? : 我定义的类对象A[3]就是c_array啊,然后用他自己的成员函数T& operator[](int i) : 来调用私有成员
|
e***a 发帖数: 18 | 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; |
c********x 发帖数: 84 | 6 template
T sum(c_array& a){ <- you forget a "public" here
T result = 0;
int size = a.get_size();
for ( int i = 0; i < size; i++ )
result += a[i];
return result;
} |
z***e 发帖数: 5393 | 7 然后用他自己的成员函数T& operator[](int i) 来调用私有成员
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
you didn't.
)
【在 m*******o 的大作中提到】 : 为什么在main里面直接用 . 去使用private不行? : 我定义的类对象A[3]就是c_array啊,然后用他自己的成员函数T& operator[](int i) : 来调用私有成员
|